From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Alex G." Subject: Re: [RFC PATCH v3 2/3] acpi: apei: Do not panic() on PCIe errors reported through GHES Date: Thu, 26 Apr 2018 12:44:57 -0500 Message-ID: References: <20180416215903.7318-1-mr.nuke.me@gmail.com> <20180425203957.18224-1-mr.nuke.me@gmail.com> <20180425203957.18224-3-mr.nuke.me@gmail.com> <20180426111946.GA15009@pd.tnic> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20180426111946.GA15009@pd.tnic> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: Borislav Petkov Cc: linux-acpi@vger.kernel.org, linux-edac@vger.kernel.org, "Rafael J. Wysocki" , Len Brown , Tony Luck , Mauro Carvalho Chehab , Robert Moore , Erik Schmauss , Tyler Baicar , Will Deacon , James Morse , Shiju Jose , "Jonathan (Zhixiong) Zhang" , Dongjiu Geng , linux-kernel@vger.kernel.org, devel@acpica.org, austin_bolen@dell.com, alex_gagniuc@dellteam.com, shyam_iyer@dell.com List-Id: linux-acpi@vger.kernel.org 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