Re: [REGRESSION] Commit 447cbe95ebb9 causes IOMMU DMA faults on macvlan/vlan with bnxt_en
flat view
From: Joe Damato <hidden>
Date: 2026-10-05 17:38:16
Also in:
regressions, stable
On Sun, Oct 04, 2026 at 01:46:08PM +0200, Eric Dumazet wrote:
On 10/4/26 12:26, Stefan Fleischmann wrote:quoted
Hi, I have bisected a regression introduced in kernel 6.18.51 (and 7.2.3). The issue is still present in 6.18.55 and 7.2.9. Verified by reverting 1517d1996b52 (the equivalent of 447cbe95ebb9 in the 6.18 branch) on top of 6.18.51 and 6.18.55. The hardware is a Dell R640 server with Intel Xeon Silver 4210 and Broadcom BCM57412 NetXtreme-E NIC. The network interface is configured as an untagged interface and has a couple of tagged VLAN interfaces configured on top. All of these are used by LXC containers with Macvlan. The interface comes up fine after boot, but after some time (anywhere between 2 to 40 minutes) I see a DMA error in the kernel log (attached), and the driver ends up tearing down the interface. It can be brought up again after that, but it will hit a DMA error again after a while and the interface goes down again. I'm happy to provide more debug info if needed, or test patches.Hi Stefan, Thanks for the bisect and detailed report. Notice that 0xfc499000 is on an exact 4KB page boundary. This points to a DMA read overrun where the Broadcom DMA engine reads past the end of a buffer mapped in page 0xfc498xxx into the adjacent unmapped page 0xfc499000. Have you tried a recent net kernel ? Could you please test whether disabling TSO or hardware VLAN offload prevents the crash? (maybe adding one option at a time) # ethtool -K eno1np0 tso off # ethtool -K eno1np0 tx-vlan-offload off Adding Joe to this thread, because some parts in tso_dma_map_init() or tso_start() might have bugs.
Thanks for adding me and debugging this. We've been hitting a similar read fault for a very long time I've had trouble tracking down (it's been reproducing since at least kernel 6.9, long before my SW USO changes). In the case I am tracking, it seems to reproduce (fairly rarely) and seems to be caused by a tcpv6 TSO packet with a read fault in the last page of a 32k frag. I have yet to find a reproducer for my issue, though :( I'll try this patch, but IIUC padding only applies to frames under 52 bytes, so I'm not sure if it's the same bug I have been searching for.