On Mon, Oct 19, 2026 at 3:57 PM Morten Brørup <[email protected]> wrote: > > Writing the checksum in the packet needs room for 2 bytes, not 1 byte. > > Fixes: 96cb6711939e ("net/virtio: support Rx checksum offload") > Fixes: 0eaf7fc2fe8e ("net/virtio: separate AVX Rx/Tx") > Cc: [email protected] > > Signed-off-by: Morten Brørup <[email protected]> > --- > drivers/net/virtio/virtio_rxtx.c | 2 +- > drivers/net/virtio/virtio_rxtx_packed.h | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/virtio/virtio_rxtx.c > b/drivers/net/virtio/virtio_rxtx.c > index edecd2011f..1afb68bc69 100644 > --- a/drivers/net/virtio/virtio_rxtx.c > +++ b/drivers/net/virtio/virtio_rxtx.c > @@ -955,7 +955,7 @@ virtio_rx_offload(struct rte_mbuf *m, struct > virtio_net_hdr *hdr) > if (likely(csum != 0xffff)) > csum = ~csum; > off = hdr->csum_offset + hdr->csum_start; > - if (rte_pktmbuf_data_len(m) >= off + 1) > + if (rte_pktmbuf_data_len(m) >= off + sizeof(uint16_t)) > *rte_pktmbuf_mtod_offset(m, uint16_t *, > off) = csum; > } > diff --git a/drivers/net/virtio/virtio_rxtx_packed.h > b/drivers/net/virtio/virtio_rxtx_packed.h > index f7cc60bb51..6501ede3f0 100644 > --- a/drivers/net/virtio/virtio_rxtx_packed.h > +++ b/drivers/net/virtio/virtio_rxtx_packed.h > @@ -185,7 +185,7 @@ virtio_vec_rx_offload(struct rte_mbuf *m, struct > virtio_net_hdr *hdr) > if (likely(csum != 0xffff)) > csum = ~csum; > off = hdr->csum_offset + hdr->csum_start; > - if (rte_pktmbuf_data_len(m) >= off + 1) > + if (rte_pktmbuf_data_len(m) >= off + sizeof(uint16_t)) > *rte_pktmbuf_mtod_offset(m, uint16_t *, > off) = csum; > } > -- > 2.43.0 >
Reviewed-by: Maxime Coquelin <[email protected]>

