Messages in this thread |  | | Subject | Re: [RFC PATCH v3 2/3] acpi: apei: Do not panic() on PCIe errors reported through GHES | From | "Alex G." <> | Date | Thu, 26 Apr 2018 12:44:57 -0500 |
| |
Hi Borislav,
On 04/26/2018 06:19 AM, Borislav Petkov wrote: > On Wed, Apr 25, 2018 at 03:39:50PM -0500, Alexandru Gagniuc wrote: >> @@ -932,7 +971,7 @@ static void __process_error(struct ghes *ghes) >> static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs) >> { >> struct ghes *ghes; >> - int sev, ret = NMI_DONE; >> + int sev, asev, ret = NMI_DONE; >> >> if (!atomic_add_unless(&ghes_in_nmi, 1, 1)) >> return ret; >> @@ -945,8 +984,9 @@ static int ghes_notify_nmi(unsigned int cmd, struct pt_regs *regs) >> ret = NMI_HANDLED; >> } >> >> + asev = ghes_actual_severity(ghes); >> sev = ghes_severity(ghes->estatus->error_severity); > > So renaming ghes_deferrable_severity() to ghes_actual_severity() is not > a big change. And that's not what I meant.
I'm sorry I misunderstood you.
> I'd like to see here: > > sev = ghes_severity(ghes);
sev = ghes_severity(ghes);
> and inside you do all the required mapping/severity processing/etc. And > you can rename the current ghes_severity() to ghes_map_cper_severity() > or whatever...
I agree that the current ghes_severity() name is vague. I'll get it done properly in v4 (next week).
>> - if (sev >= GHES_SEV_PANIC) { >> + if ((sev >= GHES_SEV_PANIC) && (asev >= GHES_SEV_PANIC)) { > > ... so that this change doesn't happen and there are not two severities > queried but a single one.
Two severities is a result of the wanky GHES data structure. Nothing says we have to use the severity field in the header... if you're okay with just ignoring it.
Alex
|  |