[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-edac
Subject:    Re: [RFC PATCH v3 2/3] acpi: apei: Do not panic() on PCIe errors reported through GHES
From:       "Alex G." <mr.nuke.me () gmail ! com>
Date:       2018-04-26 17:44:57
Message-ID: d193d219-0e2a-4a5c-b838-b5ea042bfab8 () gmail ! com
[Download RAW message or body]

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
--
To unsubscribe from this list: send the line "unsubscribe linux-edac" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic