summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin
diff options
context:
space:
mode:
authorFan Gong <gongfan1@huawei.com>2026-08-11 19:43:59 +0800
committerJakub Kicinski <kuba@kernel.org>2026-08-17 11:28:56 -0700
commitd0c2bed6927cbfa2cb51f240b4812bf6916bce0e (patch)
treebad9d62d3eb11e18ff5fd4c47e8f5b1681e503ed /tools/perf/scripts/python/bin
parent603fa1f50aaba09eb97f050d7b781858f747c91b (diff)
hinic3: Fix skb linearization mismatch and drop skb when skb_checksum_help() failed
Previously, hinic3_send_one_skb() cached the skb fragment count before calling hinic3_tx_offload(). If hinic3_tx_csum() falls back to skb_checksum_help() for unsupported tunnel packets, the skb may be linearized. Continuing to build the TX descriptor with the stale fragment count leads to a descriptor mismatch, which can trigger out-of-bounds DMA reads or IOMMU faults. Furthermore, the old code ignored the return value of skb_checksum_help(), transmitting corrupted packets with incomplete checksums upon failure. Fix this by: 1. Moving the hinic3_tx_offload() call before calculating 'num_sge' to ensure the correct fragment count is used if the SKB is linearized. 2. Propagating skb_checksum_help() errors and returning HINIC3_TX_OFFLOAD_INVALID to properly drop the skb. Fixes: 17fcb3dc12bb ("hinic3: module initialization and tx/rx logic") Co-developed-by: Teng Peisen <tengpeisen@huawei.com> Signed-off-by: Teng Peisen <tengpeisen@huawei.com> Co-developed-by: Wu Di <wudi234@huawei.com> Signed-off-by: Wu Di <wudi234@huawei.com> Signed-off-by: Fan Gong <gongfan1@huawei.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/78d8c61cab588240948eaddcb437d59add9f77ae.1786448013.git.tengpeisen@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions