aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/pcie/aer/aerdrv_acpi.c
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2013-06-06 14:10:48 -0400
committerBjorn Helgaas <bhelgaas@google.com>2013-06-06 16:33:38 -0400
commit8d2a171f18f7cc9271ee3b9f1355fa4a13380320 (patch)
tree74e0ae8bd4835415f0f016d954700e602c605f4f /drivers/pci/pcie/aer/aerdrv_acpi.c
parenta6bd73cdc93ec03781ff99beb5b465fd6ea3a784 (diff)
PCI/AER: Set dev->__aer_firmware_first only for matching devices
Previously, we always updated info->firmware_first, even for HEST entries that didn't match the device. Therefore, if the last HEST descriptor was a PCIe structure that didn't match the device, we always cleared dev->__aer_firmware_first. Tested-by: Betty Dall <betty.dall@hp.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci/pcie/aer/aerdrv_acpi.c')
-rw-r--r--drivers/pci/pcie/aer/aerdrv_acpi.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/pci/pcie/aer/aerdrv_acpi.c b/drivers/pci/pcie/aer/aerdrv_acpi.c
index e7ea5735a61f..cf611ab2193a 100644
--- a/drivers/pci/pcie/aer/aerdrv_acpi.c
+++ b/drivers/pci/pcie/aer/aerdrv_acpi.c
@@ -54,16 +54,16 @@ static int aer_hest_parse(struct acpi_hest_header *hest_hdr, void *data)
54{ 54{
55 struct aer_hest_parse_info *info = data; 55 struct aer_hest_parse_info *info = data;
56 struct acpi_hest_aer_common *p; 56 struct acpi_hest_aer_common *p;
57 int ff = 0; 57 int ff;
58 58
59 p = (struct acpi_hest_aer_common *)(hest_hdr + 1); 59 p = (struct acpi_hest_aer_common *)(hest_hdr + 1);
60 ff = !!(p->flags & ACPI_HEST_FIRMWARE_FIRST);
60 if (p->flags & ACPI_HEST_GLOBAL) { 61 if (p->flags & ACPI_HEST_GLOBAL) {
61 if (hest_match_type(hest_hdr, info->pci_dev)) 62 if (hest_match_type(hest_hdr, info->pci_dev))
62 ff = !!(p->flags & ACPI_HEST_FIRMWARE_FIRST); 63 info->firmware_first = ff;
63 } else 64 } else
64 if (hest_match_pci(p, info->pci_dev)) 65 if (hest_match_pci(p, info->pci_dev))
65 ff = !!(p->flags & ACPI_HEST_FIRMWARE_FIRST); 66 info->firmware_first = ff;
66 info->firmware_first = ff;
67 67
68 return 0; 68 return 0;
69} 69}