diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2014-01-13 16:46:15 -0700 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2014-01-13 16:46:15 -0700 |
commit | 6b9bd1e3ee8f23b55d407becf4f6f422ec4610f2 (patch) | |
tree | c5bee117d8ae1b20e6f9de393c382430ecc7faf5 | |
parent | 96702be560374ee7e7139a34cab03554129abbb4 (diff) | |
parent | 339c0fc58618b717565f109d68da50c5bc1a0510 (diff) | |
download | op-kernel-dev-6b9bd1e3ee8f23b55d407becf4f6f422ec4610f2.zip op-kernel-dev-6b9bd1e3ee8f23b55d407becf4f6f422ec4610f2.tar.gz |
Merge branch 'pci/aer' into next
* pci/aer:
PCI/AER: Support ACPI HEST AER error sources for PCI domains other than 0
ACPICA: Add helper macros to extract bus/segment numbers from HEST table.
-rw-r--r-- | drivers/pci/pcie/aer/aerdrv_acpi.c | 8 | ||||
-rw-r--r-- | include/acpi/actbl1.h | 10 |
2 files changed, 13 insertions, 5 deletions
diff --git a/drivers/pci/pcie/aer/aerdrv_acpi.c b/drivers/pci/pcie/aer/aerdrv_acpi.c index 4d69917..0190657 100644 --- a/drivers/pci/pcie/aer/aerdrv_acpi.c +++ b/drivers/pci/pcie/aer/aerdrv_acpi.c @@ -23,10 +23,10 @@ static inline int hest_match_pci(struct acpi_hest_aer_common *p, struct pci_dev *pci) { - return (0 == pci_domain_nr(pci->bus) && - p->bus == pci->bus->number && - p->device == PCI_SLOT(pci->devfn) && - p->function == PCI_FUNC(pci->devfn)); + return ACPI_HEST_SEGMENT(p->bus) == pci_domain_nr(pci->bus) && + ACPI_HEST_BUS(p->bus) == pci->bus->number && + p->device == PCI_SLOT(pci->devfn) && + p->function == PCI_FUNC(pci->devfn); } static inline bool hest_match_type(struct acpi_hest_header *hest_hdr, diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h index 556c83ee..4ec8c19 100644 --- a/include/acpi/actbl1.h +++ b/include/acpi/actbl1.h @@ -457,7 +457,7 @@ struct acpi_hest_aer_common { u8 enabled; u32 records_to_preallocate; u32 max_sections_per_record; - u32 bus; + u32 bus; /* Bus and Segment numbers */ u16 device; u16 function; u16 device_control; @@ -473,6 +473,14 @@ struct acpi_hest_aer_common { #define ACPI_HEST_FIRMWARE_FIRST (1) #define ACPI_HEST_GLOBAL (1<<1) +/* + * Macros to access the bus/segment numbers in Bus field above: + * Bus number is encoded in bits 7:0 + * Segment number is encoded in bits 23:8 + */ +#define ACPI_HEST_BUS(bus) ((bus) & 0xFF) +#define ACPI_HEST_SEGMENT(bus) (((bus) >> 8) & 0xFFFF) + /* Hardware Error Notification */ struct acpi_hest_notify { |