浏览代码

[PATCH] e1000 disable device on PCI error

A recent patch in -mm3 titled
"gregkh-pci-pci-don-t-enable-device-if-already-enabled.patch" causes
pci_enable_device() to be a no-op if the kernel thinks that the device is
already enabled.  This change breaks the PCI error recovery mechanism in
the e1000 device driver, since, after PCI slot reset, the card is no longer
enabled.  This is a trivial fix for this problem.  Tested.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Cc: John Ronciak <john.ronciak@intel.com>
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Acked-by: Auke Kok <auke-jan.h.kok@intel.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Linas Vepstas 18 年之前
父节点
当前提交
72e8d6bbc1
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      drivers/net/e1000/e1000_main.c

+ 1 - 0
drivers/net/e1000/e1000_main.c

@@ -4811,6 +4811,7 @@ static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev, pci_channe
 
 
 	if (netif_running(netdev))
 	if (netif_running(netdev))
 		e1000_down(adapter);
 		e1000_down(adapter);
+	pci_disable_device(pdev);
 
 
 	/* Request a slot slot reset. */
 	/* Request a slot slot reset. */
 	return PCI_ERS_RESULT_NEED_RESET;
 	return PCI_ERS_RESULT_NEED_RESET;