diff options
Diffstat (limited to 'drivers/bcma/driver_pci.c')
| -rw-r--r-- | drivers/bcma/driver_pci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/bcma/driver_pci.c b/drivers/bcma/driver_pci.c index 9a96f14c8f47..c32ebd537abe 100644 --- a/drivers/bcma/driver_pci.c +++ b/drivers/bcma/driver_pci.c | |||
| @@ -232,17 +232,19 @@ void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc) | |||
| 232 | int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, struct bcma_device *core, | 232 | int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, struct bcma_device *core, |
| 233 | bool enable) | 233 | bool enable) |
| 234 | { | 234 | { |
| 235 | struct pci_dev *pdev = pc->core->bus->host_pci; | 235 | struct pci_dev *pdev; |
| 236 | u32 coremask, tmp; | 236 | u32 coremask, tmp; |
| 237 | int err = 0; | 237 | int err = 0; |
| 238 | 238 | ||
| 239 | if (core->bus->hosttype != BCMA_HOSTTYPE_PCI) { | 239 | if (!pc || core->bus->hosttype != BCMA_HOSTTYPE_PCI) { |
| 240 | /* This bcma device is not on a PCI host-bus. So the IRQs are | 240 | /* This bcma device is not on a PCI host-bus. So the IRQs are |
| 241 | * not routed through the PCI core. | 241 | * not routed through the PCI core. |
| 242 | * So we must not enable routing through the PCI core. */ | 242 | * So we must not enable routing through the PCI core. */ |
| 243 | goto out; | 243 | goto out; |
| 244 | } | 244 | } |
| 245 | 245 | ||
| 246 | pdev = pc->core->bus->host_pci; | ||
| 247 | |||
| 246 | err = pci_read_config_dword(pdev, BCMA_PCI_IRQMASK, &tmp); | 248 | err = pci_read_config_dword(pdev, BCMA_PCI_IRQMASK, &tmp); |
| 247 | if (err) | 249 | if (err) |
| 248 | goto out; | 250 | goto out; |
