It looks like removing this line couldn't help.
Apparently, acpi_pci_link_set(link, link->irq.active) must be called
_before_ the call to pci_write_config_word() in
drivers/pci/pci.c:pci_set_power_state(), because the box hangs
otherwise. However, with the patch applied,
acpi_pci_link_set(link, link->irq.active) is only called through
pcibios_enable_irq() in pcibios_enable_device(), which is _after_
the call to pci_set_power_state() in pci_enable_device_bars(),
so it's too late.
Hence, it seems, if you really want to get rid of the
irqrouter_resume(), whatever the reason, the simplest fix
seems to be to change the order of calls to pci_set_power_state()
and pcibios_enable_device() in pci_enable_device_bars():
--- old/drivers/pci/pci.c 2005-03-26 19:10:09.000000000 +0100
+++ linux-2.6.12-rc1-mm2/drivers/pci/pci.c 2005-03-26 19:10:54.000000000 +0100
@@ -442,9 +442,9 @@ pci_enable_device_bars(struct pci_dev *d
- pci_set_power_state(dev, PCI_D0);
if ((err = pcibios_enable_device(dev, bars)) < 0)
+ pci_set_power_state(dev, PCI_D0);
though I'm not sure if that's legal.
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll "Alice's Adventures in Wonderland"
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to XXXX@XXXXX.COM
More majordomo info at http://www.yqcomputer.com/
Please read the FAQ at http://www.yqcomputer.com/