Patchwork [5/5] EDAC, mce_amd: Print ExtErrorCode and description on a single line

login
register
mail settings
Submitter Yazen Ghannam
Date Feb. 1, 2019, 10:55 p.m.
Message ID <20190201225534.8177-6-Yazen.Ghannam@amd.com>
Download mbox | patch
Permalink /patch/716323/
State New
Headers show

Comments

Yazen Ghannam - Feb. 1, 2019, 10:55 p.m.
From: Yazen Ghannam <yazen.ghannam@amd.com>

Save a log line by printing the extended error code and the description
on a single line. This is similar to how errors are printed in other
subsystems, e.g. "#, description". If we don't have a valid description
then only the number/code is printed.

Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
---
 drivers/edac/mce_amd.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
Borislav Petkov - Feb. 3, 2019, 12:21 p.m.
On Fri, Feb 01, 2019 at 10:55:54PM +0000, Ghannam, Yazen wrote:
> From: Yazen Ghannam <yazen.ghannam@amd.com>
> 
> Save a log line by printing the extended error code and the description
> on a single line. This is similar to how errors are printed in other
> subsystems, e.g. "#, description". If we don't have a valid description
> then only the number/code is printed.
> 
> Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
> ---
>  drivers/edac/mce_amd.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
> index 7e29ceabdf6f..f286b880f981 100644
> --- a/drivers/edac/mce_amd.c
> +++ b/drivers/edac/mce_amd.c
> @@ -965,13 +965,12 @@ static void decode_smca_error(struct mce *m)
>  
>  	ip_name = smca_get_long_name(bank_type);
>  
> -	pr_emerg(HW_ERR "%s Extended Error Code: %d\n", ip_name, xec);
> +	pr_emerg(HW_ERR "%s Ext. Error Code: %d", ip_name, xec);
>  
>  	/* Only print the decode of valid error codes */
>  	if (xec < smca_mce_descs[bank_type].num_descs &&
>  			(hwid->xec_bitmap & BIT_ULL(xec))) {
> -		pr_emerg(HW_ERR "%s Error: ", ip_name);
> -		pr_cont("%s.\n", smca_mce_descs[bank_type].descs[xec]);
> +		pr_cont(", %s.\n", smca_mce_descs[bank_type].descs[xec]);

If the if-condition doesn't hit, we never print the \n
Yazen Ghannam - Feb. 4, 2019, 3:14 p.m.
> -----Original Message-----

> From: Borislav Petkov <bp@alien8.de>

> Sent: Sunday, February 3, 2019 6:22 AM

> To: Ghannam, Yazen <Yazen.Ghannam@amd.com>

> Cc: linux-edac@vger.kernel.org; linux-kernel@vger.kernel.org; bp@suse.de;

> tony.luck@intel.com; x86@kernel.org

> Subject: Re: [PATCH 5/5] EDAC, mce_amd: Print ExtErrorCode and description

> on a single line

> 

> On Fri, Feb 01, 2019 at 10:55:54PM +0000, Ghannam, Yazen wrote:

> > From: Yazen Ghannam <yazen.ghannam@amd.com>

> >

> > Save a log line by printing the extended error code and the description

> > on a single line. This is similar to how errors are printed in other

> > subsystems, e.g. "#, description". If we don't have a valid description

> > then only the number/code is printed.

> >

> > Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>

> > ---

> >  drivers/edac/mce_amd.c | 5 ++---

> >  1 file changed, 2 insertions(+), 3 deletions(-)

> >

> > diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c

> > index 7e29ceabdf6f..f286b880f981 100644

> > --- a/drivers/edac/mce_amd.c

> > +++ b/drivers/edac/mce_amd.c

> > @@ -965,13 +965,12 @@ static void decode_smca_error(struct mce *m)

> >

> >  	ip_name = smca_get_long_name(bank_type);

> >

> > -	pr_emerg(HW_ERR "%s Extended Error Code: %d\n", ip_name, xec);

> > +	pr_emerg(HW_ERR "%s Ext. Error Code: %d", ip_name, xec);

> >

> >  	/* Only print the decode of valid error codes */

> >  	if (xec < smca_mce_descs[bank_type].num_descs &&

> >  			(hwid->xec_bitmap & BIT_ULL(xec))) {

> > -		pr_emerg(HW_ERR "%s Error: ", ip_name);

> > -		pr_cont("%s.\n", smca_mce_descs[bank_type].descs[xec]);

> > +		pr_cont(", %s.\n", smca_mce_descs[bank_type].descs[xec]);

> 

> If the if-condition doesn't hit, we never print the \n

> 


Yes, you're right. But it seems that the next pr_* that's not a pr_cont will be on
a newline automatically.

Should I add an explicit newline just to be sure we get one?

Thanks,
Yazen
Borislav Petkov - Feb. 4, 2019, 4:36 p.m.
On Mon, Feb 04, 2019 at 03:14:27PM +0000, Ghannam, Yazen wrote:
> Yes, you're right. But it seems that the next pr_* that's not a pr_cont will be on
> a newline automatically.

Ah, that must be that printk continuation fun around

  4bcc595ccd80 ("printk: reinstate KERN_CONT for printing continuation lines")

> Should I add an explicit newline just to be sure we get one?

Nah, no need. If anything, we should strive to get rid of KERN_CONT, if
possible.

Thx.

Patch

diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
index 7e29ceabdf6f..f286b880f981 100644
--- a/drivers/edac/mce_amd.c
+++ b/drivers/edac/mce_amd.c
@@ -965,13 +965,12 @@  static void decode_smca_error(struct mce *m)
 
 	ip_name = smca_get_long_name(bank_type);
 
-	pr_emerg(HW_ERR "%s Extended Error Code: %d\n", ip_name, xec);
+	pr_emerg(HW_ERR "%s Ext. Error Code: %d", ip_name, xec);
 
 	/* Only print the decode of valid error codes */
 	if (xec < smca_mce_descs[bank_type].num_descs &&
 			(hwid->xec_bitmap & BIT_ULL(xec))) {
-		pr_emerg(HW_ERR "%s Error: ", ip_name);
-		pr_cont("%s.\n", smca_mce_descs[bank_type].descs[xec]);
+		pr_cont(", %s.\n", smca_mce_descs[bank_type].descs[xec]);
 	}
 
 	if (bank_type == SMCA_UMC && xec == 0 && decode_dram_ecc)