Skip to content

Commit

Permalink
igc: Fix possible system crash when loading module
Browse files Browse the repository at this point in the history
Guarantee that when probe() is run again, PTM and PCI busmaster will be
in the same state as it was if the driver was never loaded.

Avoid an i225/i226 hardware issue that PTM requests can be made even
though PCI bus mastering is not enabled. These unexpected PTM requests
can crash some systems.

So, "force" disable PTM and busmastering before removing the driver,
so they can be re-enabled in the right order during probe(). This is
more like a workaround and should be applicable for i225 and i226, in
any platform.

Fixes: 1b5d73f ("igc: Enable PCIe PTM")
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Reviewed-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
  • Loading branch information
Vinicius Costa Gomes authored and Tony Nguyen committed Jun 12, 2023
1 parent e43516f commit c080fe2
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/net/ethernet/intel/igc/igc_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -6730,6 +6730,9 @@ static void igc_remove(struct pci_dev *pdev)

igc_ptp_stop(adapter);

pci_disable_ptm(pdev);
pci_clear_master(pdev);

set_bit(__IGC_DOWN, &adapter->state);

del_timer_sync(&adapter->watchdog_timer);
Expand Down

0 comments on commit c080fe2

Please sign in to comment.