mlx5_core reports hardware checksum error for padded packets on Mellanox NICs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Medium
|
Matthew Ruffell |
Bug Description
BugLink: https:/
[Impact]
On machines equipped with Mellanox NIC's, in this particular case, Mellanox 5 series NICs using the mlx5_core driver, there is a kernel splat when sending large IP packets which have padding at the end.
enp6s0f0: hw csum failure
CPU: 19 PID: 0 Comm: swapper/19 Not tainted 4.15.0-72-generic
Call Trace:
<IRQ>
dump_stack+
netdev_
__skb_checksum_
nf_ip_checksum+
icmp_error+
nf_conntrack_
? __skb_checksum+
ipv4_conntrack_
nf_hook_
? skb_send_
ip_rcv+0x301/0x360
? inet_del_
__netif_
__netif_
? __netif_
netif_receive_
napi_gro_
mlx5e_handle_
? enqueue_
mlx5e_poll_
mlx5e_napi_
net_rx_
__do_softirq+
irq_exit+0xc5/0xd0
do_IRQ+0x86/0xe0
common_
</IRQ>
This bug is a further attempt to fix these splats, as there has been previous fixes in LP #1840854 and a series of commits which landed in 4.15.0-67 (LP #1847155) as a part of upstream -stable patches.
This bug will also fix the same problems on the new Mellanox CX6 and Bluefield hardware, which has been enabled already via previous upstream -stable patches which landed in LP #1847155.
[Fix]
This particular issue was fixed for Mellanox series 5 drivers in the following commits:
commit 0aa1d18615c163f
Author: Saeed Mahameed <email address hidden>
Date: Tue Mar 12 00:24:52 2019 -0700
Subject: net/mlx5e: Rx, Fixup skb checksum for packets with tail padding
This commit required a minor backport.
This commit was selected for upstream -stable in 4.19.76 and 5.0.10.
This commit appears to be omitted from "Bionic update: upstream stable patchset 2019-10-07", which is LP #1847155, probably due to requiring a backport.
commit db849faa9bef993
Author: Saeed Mahameed <email address hidden>
Date: Fri May 3 13:14:59 2019 -0700
Subject: net/mlx5e: Rx, Fix checksum calculation for new hardware
This commit required a minor backport.
This commit was selected for upstream -stable in 5.1.21 and 5.2.4.
This commit has already been applied to the disco kernel, as part of stable updates.
[Testcase]
The following scapy script will reproduce this issue. Run from the machine with the Mellanox series 5 NIC:
1) a=Ether(
2) sendp(a, iface='enp6s0f0')
3) Check dmesg on the reciever side. The example uses localhost, so check dmesg.
I have built some test kernels, which are available here:
https:/
This kernel contains 0aa1d18615c163f
and
https:/
This kernel contains db849faa9bef993
If you install the test kernels the issue is resolved.
[Regression Potential]
The changes are limited to the mlx5_core driver, and only modify how packet checksums are calculated when padding is involved.
Both patches have been accepted and published by upstream -stable, and are widely accepted by the community.
Because of this, I believe the risk of regression is low.
CVE References
affects: | ubuntu → linux (Ubuntu) |
Changed in linux (Ubuntu): | |
status: | New → Fix Released |
Changed in linux (Ubuntu Bionic): | |
importance: | Undecided → Medium |
description: | updated |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Committed |
tags: |
added: verification-done-bionic removed: bot-comment seg verification-needed-bionic |
Thank you for taking the time to report this bug and helping to make Ubuntu better. It seems that your bug report is not filed about a specific source package though, rather it is just filed against Ubuntu in general. It is important that bug reports be filed about source packages so that people interested in the package can find the bugs about it. You can find some hints about determining what package your bug might be about at https:/ /wiki.ubuntu. com/Bugs/ FindRightPackag e. You might also ask for help in the #ubuntu-bugs irc channel on Freenode.
To change the source package that this bug is filed about visit https:/ /bugs.launchpad .net/ubuntu/ +bug/1854842/ +editstatus and add the package name in the text box next to the word Package.
[This is an automated message. I apologize if it reached you inappropriately; please just reply to this message indicating so.]