]> git.baikalelectronics.ru Git - kernel.git/commit
igc: fix page fault when thunderbolt is unplugged
authorAaron Ma <aaron.ma@canonical.com>
Tue, 13 Jul 2021 13:00:36 +0000 (21:00 +0800)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Fri, 20 Aug 2021 14:36:22 +0000 (07:36 -0700)
commitf0f89dc94ba5c17ab6c52e957885763c52b5552c
treeca7c5e49a3607d761098fdf025e4aa8fd1d7dd4d
parent8ea50ee53e4f869d996af018c90e818aefbba601
igc: fix page fault when thunderbolt is unplugged

After unplug thunderbolt dock with i225, pciehp interrupt is triggered,
remove call will read/write mmio address which is already disconnected,
then cause page fault and make system hang.

Check PCI state to remove device safely.

Trace:
BUG: unable to handle page fault for address: 000000000000b604
Oops: 0000 [#1] SMP NOPTI
RIP: 0010:igc_rd32+0x1c/0x90 [igc]
Call Trace:
igc_ptp_suspend+0x6c/0xa0 [igc]
igc_ptp_stop+0x12/0x50 [igc]
igc_remove+0x7f/0x1c0 [igc]
pci_device_remove+0x3e/0xb0
__device_release_driver+0x181/0x240

Fixes: 7b8b755237a4 ("igc: Add support for Tx/Rx rings")
Fixes: 7c53ac5259cb ("igc: Save PTP time before a reset")
Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/igc/igc_main.c
drivers/net/ethernet/intel/igc/igc_ptp.c