PCI/AER: Set dev->__aer_firmware_first only for matching devices
authorBjorn Helgaas <bhelgaas@google.com>
Thu, 6 Jun 2013 18:10:48 +0000 (12:10 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 6 Jun 2013 20:33:38 +0000 (14:33 -0600)
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>
drivers/pci/pcie/aer/aerdrv_acpi.c

index e7ea5735a61fcb0f875104d123035abafd1a0f6f..cf611ab2193a618880e94303d9bdbe93cd1fdf7e 100644 (file)
@@ -54,16 +54,16 @@ static int aer_hest_parse(struct acpi_hest_header *hest_hdr, void *data)
 {
        struct aer_hest_parse_info *info = data;
        struct acpi_hest_aer_common *p;
-       int ff = 0;
+       int ff;
 
        p = (struct acpi_hest_aer_common *)(hest_hdr + 1);
+       ff = !!(p->flags & ACPI_HEST_FIRMWARE_FIRST);
        if (p->flags & ACPI_HEST_GLOBAL) {
                if (hest_match_type(hest_hdr, info->pci_dev))
-                       ff = !!(p->flags & ACPI_HEST_FIRMWARE_FIRST);
+                       info->firmware_first = ff;
        } else
                if (hest_match_pci(p, info->pci_dev))
-                       ff = !!(p->flags & ACPI_HEST_FIRMWARE_FIRST);
-       info->firmware_first = ff;
+                       info->firmware_first = ff;
 
        return 0;
 }