|
@@ -225,6 +225,7 @@ static void __eeh_mark_slot (struct device_node *dn, int mode_flag)
|
|
|
|
|
|
void eeh_mark_slot (struct device_node *dn, int mode_flag)
|
|
|
{
|
|
|
+ struct pci_dev *dev;
|
|
|
dn = find_device_pe (dn);
|
|
|
|
|
|
/* Back up one, since config addrs might be shared */
|
|
@@ -232,6 +233,12 @@ void eeh_mark_slot (struct device_node *dn, int mode_flag)
|
|
|
dn = dn->parent;
|
|
|
|
|
|
PCI_DN(dn)->eeh_mode |= mode_flag;
|
|
|
+
|
|
|
+ /* Mark the pci device too */
|
|
|
+ dev = PCI_DN(dn)->pcidev;
|
|
|
+ if (dev)
|
|
|
+ dev->error_state = pci_channel_io_frozen;
|
|
|
+
|
|
|
__eeh_mark_slot (dn->child, mode_flag);
|
|
|
}
|
|
|
|