]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
idpf: fix handling rsc packet with a single segment
authorSridhar Samudrala <sridhar.samudrala@intel.com>
Sat, 11 Jan 2025 00:29:22 +0000 (16:29 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Feb 2025 13:01:16 +0000 (14:01 +0100)
[ Upstream commit 69ab25a74e2df53edc2de4acfce0a484bdb88155 ]

Handle rsc packet with a single segment same as a multi
segment rsc packet so that CHECKSUM_PARTIAL is set in the
skb->ip_summed field. The current code is passing CHECKSUM_NONE
resulting in TCP GRO layer doing checksum in SW and hiding the
issue. This will fail when using dmabufs as payload buffers as
skb frag would be unreadable.

Fixes: 3a8845af66ed ("idpf: add RX splitq napi poll support")
Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Tested-by: Samuel Salin <Samuel.salin@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/idpf/idpf_txrx.c

index 60d15b3e6e2faaf03342f609a3affe648ca0518b..cd7c297059aedb94fe6a388a17789e9b3f8d9122 100644 (file)
@@ -3008,8 +3008,6 @@ static int idpf_rx_rsc(struct idpf_rx_queue *rxq, struct sk_buff *skb,
                return -EINVAL;
 
        rsc_segments = DIV_ROUND_UP(skb->data_len, rsc_seg_len);
-       if (unlikely(rsc_segments == 1))
-               return 0;
 
        NAPI_GRO_CB(skb)->count = rsc_segments;
        skb_shinfo(skb)->gso_size = rsc_seg_len;