]> git.droids-corp.org - dpdk.git/commitdiff
net/octeontx2: fix buffer size assignment
authorAnkur Dwivedi <adwivedi@marvell.com>
Wed, 20 May 2020 12:20:10 +0000 (17:50 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 21 May 2020 13:53:14 +0000 (15:53 +0200)
The elt_size field in mempool holds the size of one packet buffer.
It can be used to set the lpm_sizem1 field in rq context.

The lpb_sizem1 field in rq context is 12 bit, direct assignment
to it was causing overflow of value. Because of this errors
were observed while trying inline inbound with large packets.
This patch resolves the errors.

Fixes: 094fc8a3a1e2 ("net/octeontx2: add Rx queue setup and release")
Cc: stable@dpdk.org
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
Reviewed-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
drivers/net/octeontx2/otx2_ethdev.c

index 3116e5ca68eaf080977947b229c2fce46638fd3d..3f3f0a693fcf41fcde03e857b3d4fac8ee6956aa 100644 (file)
@@ -373,10 +373,7 @@ nix_cq_rq_init(struct rte_eth_dev *eth_dev, struct otx2_eth_dev *dev,
        aq->rq.first_skip = first_skip;
        aq->rq.later_skip = (sizeof(struct rte_mbuf) / 8);
        aq->rq.flow_tagw = 32; /* 32-bits */
-       aq->rq.lpb_sizem1 = rte_pktmbuf_data_room_size(mp);
-       aq->rq.lpb_sizem1 += rte_pktmbuf_priv_size(mp);
-       aq->rq.lpb_sizem1 += sizeof(struct rte_mbuf);
-       aq->rq.lpb_sizem1 /= 8;
+       aq->rq.lpb_sizem1 = mp->elt_size / 8;
        aq->rq.lpb_sizem1 -= 1; /* Expressed in size minus one */
        aq->rq.ena = 1;
        aq->rq.pb_caching = 0x2; /* First cache aligned block to LLC */