/* Mark all devices that are children of this device as failed. Mark the device driver too, so that it can see the failure immediately; this is critical, since some drivers poll status registers in interrupts ... If a driver is polling, and the slot is frozen, then the driver can deadlock in an interrupt context, which is bad.  */
static void __eeh_mark_slot(struct device_node *parent, int mode_flag)
/* Mark all devices that are children of this device as failed. Mark the device driver too, so that it can see the failure immediately; this is critical, since some drivers poll status registers in interrupts ... If a driver is polling, and the slot is frozen, then the driver can deadlock in an interrupt context, which is bad.  */
static void __eeh_mark_slot(struct device_node *parent, int mode_flag)
{
	struct device_node *dn;
	for_each_child_of_node(parent, dn) {
		if (PCI_DN(dn)) {
			struct pci_dev *dev = PCI_DN(dn)->pcidev;
			PCI_DN(dn)->eeh_mode |= mode_flag;
			if (dev && dev->driver)
				dev->error_state = pci_channel_io_frozen;
			__eeh_mark_slot(dn, mode_flag);
		}
	}
}