vhost: pre update used ring for Tx and Rx
[dpdk.git] / lib / librte_mempool / rte_mempool.c
index 1ab6701..af71edd 100644 (file)
@@ -239,6 +239,9 @@ rte_mempool_xmem_size(uint32_t elt_num, size_t total_elt_sz, uint32_t pg_shift)
 {
        size_t obj_per_page, pg_num, pg_sz;
 
+       if (total_elt_sz == 0)
+               return 0;
+
        if (pg_shift == 0)
                return total_elt_sz * elt_num;
 
@@ -784,7 +787,7 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
 
        /* init the mempool structure */
        mp = mz->addr;
-       memset(mp, 0, sizeof(*mp));
+       memset(mp, 0, MEMPOOL_HEADER_SIZE(mp, cache_size));
        ret = snprintf(mp->name, sizeof(mp->name), "%s", name);
        if (ret < 0 || ret >= (int)sizeof(mp->name)) {
                rte_errno = ENAMETOOLONG;
@@ -1000,7 +1003,6 @@ void rte_mempool_check_cookies(const struct rte_mempool *mp,
 
                if (free == 0) {
                        if (cookie != RTE_MEMPOOL_HEADER_COOKIE1) {
-                               rte_log_set_history(0);
                                RTE_LOG(CRIT, MEMPOOL,
                                        "obj=%p, mempool=%p, cookie=%" PRIx64 "\n",
                                        obj, (const void *) mp, cookie);
@@ -1009,7 +1011,6 @@ void rte_mempool_check_cookies(const struct rte_mempool *mp,
                        hdr->cookie = RTE_MEMPOOL_HEADER_COOKIE2;
                } else if (free == 1) {
                        if (cookie != RTE_MEMPOOL_HEADER_COOKIE2) {
-                               rte_log_set_history(0);
                                RTE_LOG(CRIT, MEMPOOL,
                                        "obj=%p, mempool=%p, cookie=%" PRIx64 "\n",
                                        obj, (const void *) mp, cookie);
@@ -1019,7 +1020,6 @@ void rte_mempool_check_cookies(const struct rte_mempool *mp,
                } else if (free == 2) {
                        if (cookie != RTE_MEMPOOL_HEADER_COOKIE1 &&
                            cookie != RTE_MEMPOOL_HEADER_COOKIE2) {
-                               rte_log_set_history(0);
                                RTE_LOG(CRIT, MEMPOOL,
                                        "obj=%p, mempool=%p, cookie=%" PRIx64 "\n",
                                        obj, (const void *) mp, cookie);
@@ -1029,7 +1029,6 @@ void rte_mempool_check_cookies(const struct rte_mempool *mp,
                tlr = __mempool_get_trailer(obj);
                cookie = tlr->cookie;
                if (cookie != RTE_MEMPOOL_TRAILER_COOKIE) {
-                       rte_log_set_history(0);
                        RTE_LOG(CRIT, MEMPOOL,
                                "obj=%p, mempool=%p, cookie=%" PRIx64 "\n",
                                obj, (const void *) mp, cookie);