From: Hyong Youb Kim <hyon...@cisco.com> The default tx handler checks the maximum packet size. Check it in the prepare handler too. WQ stops working if the app/driver tries to send oversized packets, so these checks are unavoidable.
Signed-off-by: Hyong Youb Kim <hyon...@cisco.com> Reviewed-by: John Daley <johnd...@cisco.com> --- drivers/net/enic/enic_rxtx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/enic/enic_rxtx.c b/drivers/net/enic/enic_rxtx.c index 7dec486fe..04a77fcb4 100644 --- a/drivers/net/enic/enic_rxtx.c +++ b/drivers/net/enic/enic_rxtx.c @@ -563,6 +563,10 @@ uint16_t enic_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, for (i = 0; i != nb_pkts; i++) { m = tx_pkts[i]; + if (unlikely(m->pkt_len > ENIC_TX_MAX_PKT_SIZE)) { + rte_errno = EINVAL; + return i; + } ol_flags = m->ol_flags; if (ol_flags & wq->tx_offload_notsup_mask) { rte_errno = ENOTSUP; -- 2.16.2