app/testpmd: support GRE option flow item
[dpdk.git] / lib / mbuf / rte_mbuf_dyn.c
index 7d5e942..4ae7938 100644 (file)
@@ -115,8 +115,10 @@ init_shared_mem(void)
        } else {
                mz = rte_memzone_lookup(RTE_MBUF_DYN_MZNAME);
        }
-       if (mz == NULL)
+       if (mz == NULL) {
+               RTE_LOG(ERR, MBUF, "Failed to get mbuf dyn shared memory\n");
                return -1;
+       }
 
        shm = mz->addr;
 
@@ -128,7 +130,7 @@ init_shared_mem(void)
                mark_free(dynfield1);
 
                /* init free_flags */
-               for (mask = PKT_FIRST_FREE; mask <= PKT_LAST_FREE; mask <<= 1)
+               for (mask = RTE_MBUF_F_FIRST_FREE; mask <= RTE_MBUF_F_LAST_FREE; mask <<= 1)
                        shm->free_flags |= mask;
 
                process_score();
@@ -496,6 +498,10 @@ rte_mbuf_dynflag_register_bitnum(const struct rte_mbuf_dynflag *params,
 {
        int ret;
 
+       if (params->flags != 0) {
+               rte_errno = EINVAL;
+               return -1;
+       }
        if (req >= RTE_SIZEOF_FIELD(struct rte_mbuf, ol_flags) * CHAR_BIT &&
                        req != UINT_MAX) {
                rte_errno = EINVAL;
@@ -525,7 +531,11 @@ void rte_mbuf_dyn_dump(FILE *out)
        size_t i;
 
        rte_mcfg_tailq_write_lock();
-       init_shared_mem();
+       if (shm == NULL && init_shared_mem() < 0) {
+               rte_mcfg_tailq_write_unlock();
+               return;
+       }
+
        fprintf(out, "Reserved fields:\n");
        mbuf_dynfield_list = RTE_TAILQ_CAST(
                mbuf_dynfield_tailq.head, mbuf_dynfield_list);