X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_stack%2Frte_stack.c;h=8a51fba17fe7333bf5b14bc75b256fa984b5fd95;hb=35a7fe80c29446eab49ffd7e81a4f610fd1f98ce;hp=1a4d9bd1e868e39a71eb37067d8197493bd4c527;hpb=3340202f5954a4fbba62332c4aad29af67701188;p=dpdk.git diff --git a/lib/librte_stack/rte_stack.c b/lib/librte_stack/rte_stack.c index 1a4d9bd1e8..8a51fba17f 100644 --- a/lib/librte_stack/rte_stack.c +++ b/lib/librte_stack/rte_stack.c @@ -4,6 +4,7 @@ #include +#include #include #include #include @@ -14,9 +15,7 @@ #include #include "rte_stack.h" -#include "rte_stack_pvt.h" - -int stack_logtype; +#include "stack_pvt.h" TAILQ_HEAD(rte_stack_list, rte_tailq_entry); @@ -58,6 +57,11 @@ rte_stack_create(const char *name, unsigned int count, int socket_id, unsigned int sz; int ret; + if (flags & ~(RTE_STACK_F_LF)) { + STACK_LOG_ERR("Unsupported stack flags %#x\n", flags); + return NULL; + } + #ifdef RTE_ARCH_64 RTE_BUILD_BUG_ON(sizeof(struct rte_stack_lf_head) != 16); #else @@ -83,13 +87,13 @@ rte_stack_create(const char *name, unsigned int count, int socket_id, return NULL; } - rte_rwlock_write_lock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_lock(); mz = rte_memzone_reserve_aligned(mz_name, sz, socket_id, 0, __alignof__(*s)); if (mz == NULL) { STACK_LOG_ERR("Cannot reserve stack memzone!\n"); - rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_unlock(); rte_free(te); return NULL; } @@ -99,9 +103,9 @@ rte_stack_create(const char *name, unsigned int count, int socket_id, rte_stack_init(s, count, flags); /* Store the name for later lookups */ - ret = snprintf(s->name, sizeof(s->name), "%s", name); + ret = strlcpy(s->name, name, sizeof(s->name)); if (ret < 0 || ret >= (int)sizeof(s->name)) { - rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_unlock(); rte_errno = ENAMETOOLONG; rte_free(te); @@ -119,7 +123,7 @@ rte_stack_create(const char *name, unsigned int count, int socket_id, TAILQ_INSERT_TAIL(stack_list, te, next); - rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_unlock(); return s; } @@ -134,7 +138,7 @@ rte_stack_free(struct rte_stack *s) return; stack_list = RTE_TAILQ_CAST(rte_stack_tailq.head, rte_stack_list); - rte_rwlock_write_lock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_lock(); /* find out tailq entry */ TAILQ_FOREACH(te, stack_list, next) { @@ -143,13 +147,13 @@ rte_stack_free(struct rte_stack *s) } if (te == NULL) { - rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_unlock(); return; } TAILQ_REMOVE(stack_list, te, next); - rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_unlock(); rte_free(te); @@ -170,7 +174,7 @@ rte_stack_lookup(const char *name) stack_list = RTE_TAILQ_CAST(rte_stack_tailq.head, rte_stack_list); - rte_rwlock_read_lock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_read_lock(); TAILQ_FOREACH(te, stack_list, next) { r = (struct rte_stack *) te->data; @@ -178,7 +182,7 @@ rte_stack_lookup(const char *name) break; } - rte_rwlock_read_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_read_unlock(); if (te == NULL) { rte_errno = ENOENT; @@ -188,9 +192,4 @@ rte_stack_lookup(const char *name) return r; } -RTE_INIT(librte_stack_init_log) -{ - stack_logtype = rte_log_register("lib.stack"); - if (stack_logtype >= 0) - rte_log_set_level(stack_logtype, RTE_LOG_NOTICE); -} +RTE_LOG_REGISTER(stack_logtype, lib.stack, NOTICE);