From 5a12c387405a657aba23645fd864ac0771437fd5 Mon Sep 17 00:00:00 2001 From: Hyong Youb Kim Date: Fri, 29 Jun 2018 02:29:41 -0700 Subject: [PATCH] net/enic: check maximum packet size in Tx prepare handler 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 Reviewed-by: John Daley --- 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 7dec486fe2..04a77fcb46 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;