handle case where complete packet is not yet available Signed-off-by: Ed Czeck <ed.cz...@atomicrules.com> --- drivers/net/ark/ark_ethdev_rx.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ark/ark_ethdev_rx.c b/drivers/net/ark/ark_ethdev_rx.c index 6077d98ae0..1b5c4b64a4 100644 --- a/drivers/net/ark/ark_ethdev_rx.c +++ b/drivers/net/ark/ark_ethdev_rx.c @@ -313,11 +313,15 @@ eth_ark_recv_pkts(void *rx_queue, } } - if (unlikely(meta->pkt_len > queue->dataroom)) - cons_index = eth_ark_rx_jumbo - (queue, meta, mbuf, cons_index + 1); - else + if (unlikely(meta->pkt_len > queue->dataroom)) { + uint32_t tcons = eth_ark_rx_jumbo(queue, meta, mbuf, cons_index + 1); + if ((int32_t)(prod_index - tcons) >= 0) + cons_index = tcons; /* nominal condition */ + else + break; + } else { cons_index += 1; + } rx_pkts[nb] = mbuf; nb++; -- 2.34.1