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

Reply via email to