X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_member%2Frte_member.c;h=e0e7f127e36e9d12e177d228297da3b5e97554ef;hb=44bf3c796be3f747eba5d4904d93614ff300e688;hp=ab76d7754b15a10d17b3da8344c3e4fd0eee6098;hpb=ffb9fd1b0808e50ee5c9e27c95c5b2c30e06b2cf;p=dpdk.git diff --git a/lib/librte_member/rte_member.c b/lib/librte_member/rte_member.c index ab76d7754b..e0e7f127e3 100644 --- a/lib/librte_member/rte_member.c +++ b/lib/librte_member/rte_member.c @@ -4,11 +4,13 @@ #include +#include #include #include #include #include #include +#include #include "rte_member.h" #include "rte_member_ht.h" @@ -31,13 +33,13 @@ rte_member_find_existing(const char *name) member_list = RTE_TAILQ_CAST(rte_member_tailq.head, rte_member_list); - rte_rwlock_read_lock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_read_lock(); TAILQ_FOREACH(te, member_list, next) { setsum = (struct rte_member_setsum *) te->data; if (strncmp(name, setsum->name, RTE_MEMBER_NAMESIZE) == 0) break; } - rte_rwlock_read_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_read_unlock(); if (te == NULL) { rte_errno = ENOENT; @@ -55,17 +57,17 @@ rte_member_free(struct rte_member_setsum *setsum) if (setsum == NULL) return; member_list = RTE_TAILQ_CAST(rte_member_tailq.head, rte_member_list); - rte_rwlock_write_lock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_lock(); TAILQ_FOREACH(te, member_list, next) { if (te->data == (void *)setsum) break; } if (te == NULL) { - rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_unlock(); return; } TAILQ_REMOVE(member_list, te, next); - rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_unlock(); switch (setsum->type) { case RTE_MEMBER_TYPE_HT: @@ -104,7 +106,7 @@ rte_member_create(const struct rte_member_parameters *params) member_list = RTE_TAILQ_CAST(rte_member_tailq.head, rte_member_list); - rte_rwlock_write_lock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_lock(); TAILQ_FOREACH(te, member_list, next) { setsum = te->data; @@ -132,7 +134,7 @@ rte_member_create(const struct rte_member_parameters *params) RTE_MEMBER_LOG(ERR, "Create setsummary failed\n"); goto error_unlock_exit; } - snprintf(setsum->name, sizeof(setsum->name), "%s", params->name); + strlcpy(setsum->name, params->name, sizeof(setsum->name)); setsum->type = params->type; setsum->socket_id = params->socket_id; setsum->key_len = params->key_len; @@ -158,12 +160,13 @@ rte_member_create(const struct rte_member_parameters *params) te->data = (void *)setsum; TAILQ_INSERT_TAIL(member_list, te, next); - rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); + rte_mcfg_tailq_write_unlock(); return setsum; error_unlock_exit: - rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK); - rte_member_free(setsum); + rte_free(te); + rte_free(setsum); + rte_mcfg_tailq_write_unlock(); return NULL; } @@ -296,10 +299,7 @@ rte_member_reset(const struct rte_member_setsum *setsum) } } -RTE_INIT(librte_member_init_log); - -static void -librte_member_init_log(void) +RTE_INIT(librte_member_init_log) { librte_member_logtype = rte_log_register("lib.member"); if (librte_member_logtype >= 0)