
From: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>

There might be some cases that pci_disable_device() is called even if the
device is already disabled.  In this case, pcibios_disable_device() should
not call acpi_pci_irq_disable() for the device.

(akpm: iirc I decided this was hacky and that the real fix lay elsewhere)

Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 arch/ia64/pci/pci.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN arch/ia64/pci/pci.c~ia64-halt-hangup-fix arch/ia64/pci/pci.c
--- devel/arch/ia64/pci/pci.c~ia64-halt-hangup-fix	2005-07-25 14:33:53.000000000 -0700
+++ devel-akpm/arch/ia64/pci/pci.c	2005-07-25 14:33:53.000000000 -0700
@@ -502,7 +502,8 @@ pcibios_enable_device (struct pci_dev *d
 void
 pcibios_disable_device (struct pci_dev *dev)
 {
-	acpi_pci_irq_disable(dev);
+	if (dev->is_enabled)
+		acpi_pci_irq_disable(dev);
 }
 #endif /* CONFIG_ACPI_DEALLOCATE_IRQ */
 
_
