diff mbox

[5/5] EDAC, skx_edac: Detect non-volatile DIMMs

Message ID 20180313155956.zapcx3l5bb72w4yz@agluck-desk (mailing list archive)
State New, archived
Headers show

Commit Message

Tony Luck March 13, 2018, 3:59 p.m. UTC
On Tue, Mar 13, 2018 at 10:59:01AM +0100, Jean Delvare wrote:
> > +	edac_dbg(0, "mc#%d: channel %d, dimm %d, %llu Mb (%u pages)\n",
> 
> I did not notice on previous review, but I think "b" in general means
> bit not byte, so "MB" would be better.

Heh! We've been cut & pasting that line from EDAC drivers since the i7core_edac.c
I think the origin is in 2.6.35. So you are far from the only person to not
notice it in a review :-)

> 
> > +		 imc->mc, chan, dimmno, size >> 20, dimm->nr_pages);
> > +
> > +	snprintf(dimm->label, sizeof(dimm->label), "CPU_SrcID#%u_MC#%u_Chan#%u_DIMM#%u",
> > +		 imc->src_id, imc->lmc, chan, dimmno);
> > +
> > +	return 1;
> > +}
> 
> Now this function always return 1, that doesn't make a lot of sense?

I could fix the return to be:





> Other than these details, the dmi-related code looks good to me now.
> 
> Reviewed-by: Jean Delvare <jdelvare@suse.de> # for DMI

Thanks.  Boris ... ready to go now? Or do you have some other comments?

-Tony

Comments

Jean Delvare March 13, 2018, 4:16 p.m. UTC | #1
On Tue, 13 Mar 2018 08:59:56 -0700, Luck, Tony wrote:
> On Tue, Mar 13, 2018 at 10:59:01AM +0100, Jean Delvare wrote:
> > > +	edac_dbg(0, "mc#%d: channel %d, dimm %d, %llu Mb (%u pages)\n",  
> > 
> > I did not notice on previous review, but I think "b" in general means
> > bit not byte, so "MB" would be better.  
> 
> Heh! We've been cut & pasting that line from EDAC drivers since the i7core_edac.c
> I think the origin is in 2.6.35. So you are far from the only person to not
> notice it in a review :-)

Hehe :-D Then I guess a patch fixing all drivers are once is in order,
after your patch set it accepted.

> > > +		 imc->mc, chan, dimmno, size >> 20, dimm->nr_pages);
> > > +
> > > +	snprintf(dimm->label, sizeof(dimm->label), "CPU_SrcID#%u_MC#%u_Chan#%u_DIMM#%u",
> > > +		 imc->src_id, imc->lmc, chan, dimmno);
> > > +
> > > +	return 1;
> > > +}  
> > 
> > Now this function always return 1, that doesn't make a lot of sense?  
> 
> I could fix the return to be:
> 
> 
> diff --git a/drivers/edac/skx_edac.c b/drivers/edac/skx_edac.c
> index 84c18bb1e0cd..1a66e145c0bd 100644
> --- a/drivers/edac/skx_edac.c
> +++ b/drivers/edac/skx_edac.c
> @@ -429,7 +429,7 @@ static int get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc,
>  	snprintf(dimm->label, sizeof(dimm->label), "CPU_SrcID#%u_MC#%u_Chan#%u_DIMM#%u",
>  		 imc->src_id, imc->lmc, chan, dimmno);
>  
> -	return 1;
> +	return (size == 0 || size == ~0ull) ? 0 : 1;
>  }

Yes, I think it makes sense, thanks.
diff mbox

Patch

diff --git a/drivers/edac/skx_edac.c b/drivers/edac/skx_edac.c
index 84c18bb1e0cd..1a66e145c0bd 100644
--- a/drivers/edac/skx_edac.c
+++ b/drivers/edac/skx_edac.c
@@ -429,7 +429,7 @@  static int get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc,
 	snprintf(dimm->label, sizeof(dimm->label), "CPU_SrcID#%u_MC#%u_Chan#%u_DIMM#%u",
 		 imc->src_id, imc->lmc, chan, dimmno);
 
-	return 1;
+	return (size == 0 || size == ~0ull) ? 0 : 1;
 }
 
 #define SKX_GET_MTMTR(dev, reg) \