diff options
-rw-r--r-- | drivers/acpi/pci_bind.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/acpi/pci_bind.c b/drivers/acpi/pci_bind.c index 62cb383222f8..a205769f1d00 100644 --- a/drivers/acpi/pci_bind.c +++ b/drivers/acpi/pci_bind.c | |||
@@ -109,12 +109,15 @@ static int acpi_pci_unbind(struct acpi_device *device) | |||
109 | struct pci_dev *dev; | 109 | struct pci_dev *dev; |
110 | 110 | ||
111 | dev = acpi_get_pci_dev(device->handle); | 111 | dev = acpi_get_pci_dev(device->handle); |
112 | if (!dev) | 112 | if (!dev || !dev->subordinate) |
113 | return 0; | 113 | goto out; |
114 | 114 | ||
115 | if (dev->subordinate) | 115 | acpi_pci_irq_del_prt(dev->subordinate); |
116 | acpi_pci_irq_del_prt(dev->subordinate); | 116 | |
117 | device->ops.bind = NULL; | ||
118 | device->ops.unbind = NULL; | ||
117 | 119 | ||
120 | out: | ||
118 | pci_dev_put(dev); | 121 | pci_dev_put(dev); |
119 | return 0; | 122 | return 0; |
120 | } | 123 | } |