[PATCH] powerpc/pseries: Increment fail counter in PCI recovery
When a PCI device driver does not support PCI error recovery, the powerpc/pseries code takes a walk through a branch of code that resets the failure counter. Because of this, if a broken PCI card is present, the kernel will attempt to reset it an infinite number of times. (This is annoying but mostly harmless: each reset takes about 10-20 seconds, and uses almost no CPU time). This patch preserves the failure count across resets. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Родитель
877fbae3d5
Коммит
4240545661
|
@ -201,7 +201,11 @@ static void eeh_report_failure(struct pci_dev *dev, void *userdata)
|
|||
|
||||
static int eeh_reset_device (struct pci_dn *pe_dn, struct pci_bus *bus)
|
||||
{
|
||||
int rc;
|
||||
int cnt, rc;
|
||||
|
||||
/* pcibios will clear the counter; save the value */
|
||||
cnt = pe_dn->eeh_freeze_count;
|
||||
|
||||
if (bus)
|
||||
pcibios_remove_pci_devices(bus);
|
||||
|
||||
|
@ -240,6 +244,7 @@ static int eeh_reset_device (struct pci_dn *pe_dn, struct pci_bus *bus)
|
|||
ssleep (5);
|
||||
pcibios_add_pci_devices(bus);
|
||||
}
|
||||
pe_dn->eeh_freeze_count = cnt;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче