diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-09 13:21:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-09 13:21:44 -0400 |
commit | e15e6119062d20cc96f95c8b345e361589a90244 (patch) | |
tree | 101a476be5527d88eacaa828956d7f3a9a7cb316 /drivers/pci | |
parent | a637b0d45947df686979b85361ad5bfa9d19fdd3 (diff) | |
parent | e253aaf0af51c1e4dc7dd3b26ea8e666bf9a2d8d (diff) |
Merge tag 'pci-v3.10-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI updates from Bjorn Helgaas:
"MSI:
PCI: Set ->mask_pos correctly
Hotplug:
PCI: Delay final fixups until resources are assigned
Moorestown:
x86/pci/mrst: Use configuration mechanism 1 for 00:00.0, 00:02.0, 00:03.0"
* tag 'pci-v3.10-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
PCI: Delay final fixups until resources are assigned
x86/pci/mrst: Use configuration mechanism 1 for 00:00.0, 00:02.0, 00:03.0
PCI: Set ->mask_pos correctly
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/bus.c | 1 | ||||
-rw-r--r-- | drivers/pci/msi.c | 6 | ||||
-rw-r--r-- | drivers/pci/probe.c | 1 |
3 files changed, 5 insertions, 3 deletions
diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c index 748f8f3e9ff5..32e66a6f12d9 100644 --- a/drivers/pci/bus.c +++ b/drivers/pci/bus.c | |||
@@ -174,6 +174,7 @@ int pci_bus_add_device(struct pci_dev *dev) | |||
174 | * Can not put in pci_device_add yet because resources | 174 | * Can not put in pci_device_add yet because resources |
175 | * are not assigned yet for some devices. | 175 | * are not assigned yet for some devices. |
176 | */ | 176 | */ |
177 | pci_fixup_device(pci_fixup_final, dev); | ||
177 | pci_create_sysfs_dev_files(dev); | 178 | pci_create_sysfs_dev_files(dev); |
178 | 179 | ||
179 | dev->match_driver = true; | 180 | dev->match_driver = true; |
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index d40bed726769..2c1075213bec 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c | |||
@@ -563,8 +563,10 @@ static int msi_capability_init(struct pci_dev *dev, int nvec) | |||
563 | entry->msi_attrib.default_irq = dev->irq; /* Save IOAPIC IRQ */ | 563 | entry->msi_attrib.default_irq = dev->irq; /* Save IOAPIC IRQ */ |
564 | entry->msi_attrib.pos = dev->msi_cap; | 564 | entry->msi_attrib.pos = dev->msi_cap; |
565 | 565 | ||
566 | entry->mask_pos = dev->msi_cap + (control & PCI_MSI_FLAGS_64BIT) ? | 566 | if (control & PCI_MSI_FLAGS_64BIT) |
567 | PCI_MSI_MASK_64 : PCI_MSI_MASK_32; | 567 | entry->mask_pos = dev->msi_cap + PCI_MSI_MASK_64; |
568 | else | ||
569 | entry->mask_pos = dev->msi_cap + PCI_MSI_MASK_32; | ||
568 | /* All MSIs are unmasked by default, Mask them all */ | 570 | /* All MSIs are unmasked by default, Mask them all */ |
569 | if (entry->msi_attrib.maskbit) | 571 | if (entry->msi_attrib.maskbit) |
570 | pci_read_config_dword(dev, entry->mask_pos, &entry->masked); | 572 | pci_read_config_dword(dev, entry->mask_pos, &entry->masked); |
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 631aeb7d2d2d..70f10fa3c1b2 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -1341,7 +1341,6 @@ void pci_device_add(struct pci_dev *dev, struct pci_bus *bus) | |||
1341 | list_add_tail(&dev->bus_list, &bus->devices); | 1341 | list_add_tail(&dev->bus_list, &bus->devices); |
1342 | up_write(&pci_bus_sem); | 1342 | up_write(&pci_bus_sem); |
1343 | 1343 | ||
1344 | pci_fixup_device(pci_fixup_final, dev); | ||
1345 | ret = pcibios_add_device(dev); | 1344 | ret = pcibios_add_device(dev); |
1346 | WARN_ON(ret < 0); | 1345 | WARN_ON(ret < 0); |
1347 | 1346 | ||