From patchwork Thu May 30 14:39:27 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Betty Dall X-Patchwork-Id: 247618 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id B20012C008C for ; Fri, 31 May 2013 00:46:14 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933104Ab3E3OqN (ORCPT ); Thu, 30 May 2013 10:46:13 -0400 Received: from g6t0185.atlanta.hp.com ([15.193.32.62]:27968 "EHLO g6t0185.atlanta.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933053Ab3E3OqM (ORCPT ); Thu, 30 May 2013 10:46:12 -0400 Received: from g5t0030.atlanta.hp.com (g5t0030.atlanta.hp.com [16.228.8.142]) by g6t0185.atlanta.hp.com (Postfix) with ESMTP id EF19B24365; Thu, 30 May 2013 14:46:11 +0000 (UTC) Received: from linux1.fc.hp.com (linux1.fc.hp.com [16.71.12.34]) by g5t0030.atlanta.hp.com (Postfix) with ESMTP id D84FF143BA; Thu, 30 May 2013 14:44:11 +0000 (UTC) From: Betty Dall To: rjw@sisk.pl, bhelgaas@google.com Cc: ying.huang@intel.com, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Betty Dall Subject: [PATCH v2 1/3] PCI/AER: Fix incorrect return from aer_hest_parse() Date: Thu, 30 May 2013 08:39:27 -0600 Message-Id: <1369924769-17183-2-git-send-email-betty.dall@hp.com> X-Mailer: git-send-email 1.7.7.6 In-Reply-To: <1369924769-17183-1-git-send-email-betty.dall@hp.com> References: <1369924769-17183-1-git-send-email-betty.dall@hp.com> Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org The function aer_hest_parse() is called to determine if the given PCI device is firmware first or not. The code loops through each section of the HEST table to look for a match. The bug is that the function always returns whether the last HEST section is firmware first. The fix stops the iteration once the info.firmware_first variable is set. This is similar to how the function aer_hest_parse_aff() stops the iteration. Signed-off-by: Betty Dall --- drivers/pci/pcie/aer/aerdrv_acpi.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/pci/pcie/aer/aerdrv_acpi.c b/drivers/pci/pcie/aer/aerdrv_acpi.c index 5194a7d..39b8671 100644 --- a/drivers/pci/pcie/aer/aerdrv_acpi.c +++ b/drivers/pci/pcie/aer/aerdrv_acpi.c @@ -42,6 +42,9 @@ static int aer_hest_parse(struct acpi_hest_header *hest_hdr, void *data) u8 bridge = 0; int ff = 0; + if (info->firmware_first) + return 0; + switch (hest_hdr->type) { case ACPI_HEST_TYPE_AER_ROOT_PORT: pcie_type = PCI_EXP_TYPE_ROOT_PORT;