> -----Original Message----- > From: Zhang, Qi Z <qi.z.zh...@intel.com> > Sent: Tuesday, May 23, 2023 6:35 PM > To: Yang, Qiming <qiming.y...@intel.com> > Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zh...@intel.com>; sta...@dpdk.org > Subject: [PATCH v2] net/ice: fix data length check > > In TSO, It is possible mbuf->data_len exceed mtu. > Fixed the incorrect data length check in ice_prep_pkts. > > Fixes: ccf33dccf7aa ("net/ice: check illegal packet sizes") > Cc: sta...@dpdk.org > > Signed-off-by: Qi Zhang <qi.z.zh...@intel.com> > --- > v2: > - fix build warning > > drivers/net/ice/ice_rxtx.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c index > 560c1a4af7..cd0e61c85f 100644 > --- a/drivers/net/ice/ice_rxtx.c > +++ b/drivers/net/ice/ice_rxtx.c > @@ -3669,9 +3669,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, > struct rte_mbuf **tx_pkts, > int i, ret; > uint64_t ol_flags; > struct rte_mbuf *m; > - struct ice_tx_queue *txq = tx_queue; > - struct rte_eth_dev *dev = &rte_eth_devices[txq->port_id]; > - uint16_t max_frame_size = dev->data->mtu + ICE_ETH_OVERHEAD; > > for (i = 0; i < nb_pkts; i++) { > m = tx_pkts[i]; > @@ -3690,7 +3687,7 @@ ice_prep_pkts(__rte_unused void *tx_queue, > struct rte_mbuf **tx_pkts, > > /* check the data_len in mbuf */ > if (m->data_len < ICE_TX_MIN_PKT_LEN || > - m->data_len > max_frame_size) { > + m->data_len > ICE_FRAME_SIZE_MAX) { This is wrong, actually check max_frame_size guarantee the data_len not exceed the buffer size. Rejected. > rte_errno = EINVAL; > PMD_DRV_LOG(ERR, "INVALID mbuf: bad > data_len=[%hu]", m->data_len); > return i; > -- > 2.31.1