]> git.ipfire.org Git - thirdparty/linux.git/commit
net: hibmcge: disable Relaxed Ordering to fix RX packet corruption
authorJijie Shao <shaojijie@huawei.com>
Mon, 25 May 2026 14:45:24 +0000 (22:45 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 28 May 2026 10:59:36 +0000 (12:59 +0200)
commit463a1271aa26eac992851b9d98cc75bc3cd4a1ed
treee3a580a78448c165b26f417890a94e7125fb79e2
parent031f1592e592e333a25d5e2ba9edd4e8c6821fdc
net: hibmcge: disable Relaxed Ordering to fix RX packet corruption

When SMMU is disabled, the hibmcge driver may receive corrupted packets.
The hardware writes packet data and descriptors to the same page, but
with Relaxed Ordering enabled, PCI write transactions may not be
strictly ordered. This can cause the driver to observe a valid
descriptor before the corresponding packet data is fully written.

Fix this by clearing PCI_EXP_DEVCTL_RELAX_EN in the PCI bridge control
register to ensure strict write ordering between packet data and
descriptors.

Fixes: f72e25594061 ("net: hibmcge: Implement rx_poll function to receive packets")
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Link: https://patch.msgid.link/20260525144525.94884-2-shaojijie@huawei.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/hisilicon/hibmcge/hbg_main.c