r8169: fix dmar pte write access is not set error
authorChunhao Lin <hau@realtek.com>
Mon, 26 Dec 2022 12:31:53 +0000 (20:31 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Dec 2022 11:58:08 +0000 (11:58 +0000)
commitbb41c13c05c23d9bc46b4e37d8914078c6a40e3a
tree2b6bd273aff03f1f3431f8d5b6bb331cec21c8d1
parentad425666a1f05d9b215a84cf010c3789b2ea8206
r8169: fix dmar pte write access is not set error

When close device, if wol is enabled, rx will be enabled. When open
device it will cause rx packet to be dma to the wrong memory address
after pci_set_master() and system log will show blow messages.

DMAR: DRHD: handling fault status reg 3
DMAR: [DMA Write] Request device [02:00.0] PASID ffffffff fault addr
ffdd4000 [fault reason 05] PTE Write access is not set

In this patch, driver disable tx/rx when close device. If wol is
enabled, only enable rx filter and disable rxdv_gate(if support) to
let hardware only receive packet to fifo but not to dma it.

Signed-off-by: Chunhao Lin <hau@realtek.com>
Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169_main.c