Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pci-v4.8-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

Pull PCI fixes from Bjorn Helgaas:
"Here are two changes for v4.8. The first fixes a "[Firmware Bug]: reg
0x10: invalid BAR (can't size)" warning on Haswell, and the second
fixes a problem in some new runtime suspend functionality we merged
for v4.8. Summary:

Enumeration:
Mark Haswell Power Control Unit as having non-compliant BARs (Bjorn Helgaas)

Power management:
Fix bridge_d3 update on device removal (Lukas Wunner)"

* tag 'pci-v4.8-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
PCI: Fix bridge_d3 update on device removal
PCI: Mark Haswell Power Control Unit as having non-compliant BARs

+14 -9
+13 -7
arch/x86/pci/fixup.c
··· 553 553 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x27B9, twinhead_reserve_killing_zone); 554 554 555 555 /* 556 - * Broadwell EP Home Agent BARs erroneously return non-zero values when read. 556 + * Device [8086:2fc0] 557 + * Erratum HSE43 558 + * CONFIG_TDP_NOMINAL CSR Implemented at Incorrect Offset 559 + * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v3-spec-update.html 557 560 * 558 - * See http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html 559 - * entry BDF2. 561 + * Devices [8086:6f60,6fa0,6fc0] 562 + * Erratum BDF2 563 + * PCI BARs in the Home Agent Will Return Non-Zero Values During Enumeration 564 + * http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html 560 565 */ 561 - static void pci_bdwep_bar(struct pci_dev *dev) 566 + static void pci_invalid_bar(struct pci_dev *dev) 562 567 { 563 568 dev->non_compliant_bars = 1; 564 569 } 565 - DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6f60, pci_bdwep_bar); 566 - DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fa0, pci_bdwep_bar); 567 - DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fc0, pci_bdwep_bar); 570 + DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2fc0, pci_invalid_bar); 571 + DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6f60, pci_invalid_bar); 572 + DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fa0, pci_invalid_bar); 573 + DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fc0, pci_invalid_bar);
+1 -2
drivers/pci/remove.c
··· 40 40 list_del(&dev->bus_list); 41 41 up_write(&pci_bus_sem); 42 42 43 + pci_bridge_d3_device_removed(dev); 43 44 pci_free_resources(dev); 44 45 put_device(&dev->dev); 45 46 } ··· 96 95 pci_remove_bus(bus); 97 96 dev->subordinate = NULL; 98 97 } 99 - 100 - pci_bridge_d3_device_removed(dev); 101 98 102 99 pci_destroy_dev(dev); 103 100 }