Re: [PATCH v2 2/3] ACPI/APEI: Force fatal AER severity when bus hasbeen reset

From: Chen Gong
Date: Tue Jun 04 2013 - 04:01:05 EST


On Thu, May 30, 2013 at 08:39:28AM -0600, Betty Dall wrote:
> Date: Thu, 30 May 2013 08:39:28 -0600
> From: Betty Dall <betty.dall@xxxxxx>
> To: rjw@xxxxxxx, bhelgaas@xxxxxxxxxx
> Cc: ying.huang@xxxxxxxxx, linux-acpi@xxxxxxxxxxxxxxx,
> linux-kernel@xxxxxxxxxxxxxxx, linux-pci@xxxxxxxxxxxxxxx, Betty Dall
> <betty.dall@xxxxxx>
> Subject: [PATCH v2 2/3] ACPI/APEI: Force fatal AER severity when bus has
> been reset
> X-Mailer: git-send-email 1.7.7.6
>
> The CPER error record has a reset bit that indicates that the platform
> has reset the bus. The reset bit can be set for any severity error
> including recoverable. From the AER code path's perspective,
> any error is fatal if the bus has been reset. This patch upgrades the
> severity of the AER recovery to AER_FATAL whenever the CPER error record
> indicates that the bus has been reset.
>
> Changes since v1:
> Fixed a typo in comment.
>
> Signed-off-by: Betty Dall <betty.dall@xxxxxx>
> ---
>
> drivers/acpi/apei/ghes.c | 21 ++++++++++++++++++++-
> 1 files changed, 20 insertions(+), 1 deletions(-)
>
>
> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
> index d668a8a..1c67d5a 100644
> --- a/drivers/acpi/apei/ghes.c
> +++ b/drivers/acpi/apei/ghes.c
> @@ -451,7 +451,26 @@ static void ghes_do_proc(struct ghes *ghes,
> int aer_severity;
> devfn = PCI_DEVFN(pcie_err->device_id.device,
> pcie_err->device_id.function);
> - aer_severity = cper_severity_to_aer(sev);
> + /*
> + * Some Firmware First implementations
> + * put the device in SBR to contain
> + * the error. This is indicated by the
> + * CPER Section Descriptor Flags reset
> + * bit which means the component must
> + * be re-initialized or re-enabled
> + * prior to use. Promoting the AER
> + * serverity to FATAL will cause the
> + * AER code to link_reset and allow
> + * drivers to reprogram their cards.
> + */
> + if (gdata->flags & CPER_SEC_RESET)
> + aer_severity = cper_severity_to_aer(
> + CPER_SEV_FATAL);
> + else
> + aer_severity =
> + cper_severity_to_aer(sev);
> +
> +

How about this?
if (gdata->flags & CPER_SEC_RESET)
sev = CPER_SEV_FATAL;
cper_severity_to_aer(sev);

> aer_recover_queue(pcie_err->device_id.segment,
> pcie_err->device_id.bus,
> devfn, aer_severity);
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html

Attachment: signature.asc
Description: Digital signature