Patchwork Correct offset_in_page mask bits in function edac_mc_handle_ce.

login
register
mail settings
Submitter shaohui xie
Date July 14, 2011, 2:01 a.m.
Message ID <1310608902-14221-1-git-send-email-Shaohui.Xie@freescale.com>
Download mbox | patch
Permalink /patch/104624/
State Not Applicable
Headers show

Comments

shaohui xie - July 14, 2011, 2:01 a.m.
From: Kai.Jiang <Kai.Jiang@freescale.com>

Parameter offset_in_page in function edac_mc_handle_ce should be masked
the higher bits above the page size, not the lower bits. The original input
sometimes causes crash.

Signed-off-by: Kai.Jiang <Kai.Jiang@freescale.com>
---
 drivers/edac/mpc85xx_edac.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Andrew Morton - July 14, 2011, 9:50 p.m.
On Thu, 14 Jul 2011 10:01:42 +0800
Shaohui Xie <Shaohui.Xie@freescale.com> wrote:

> From: Kai.Jiang <Kai.Jiang@freescale.com>
> 
> Parameter offset_in_page in function edac_mc_handle_ce should be masked
> the higher bits above the page size, not the lower bits. The original input
> sometimes causes crash.
> 
> Signed-off-by: Kai.Jiang <Kai.Jiang@freescale.com>
> ---
>  drivers/edac/mpc85xx_edac.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
> index 38ab8e2..b048a5f 100644
> --- a/drivers/edac/mpc85xx_edac.c
> +++ b/drivers/edac/mpc85xx_edac.c
> @@ -854,11 +854,11 @@ static void mpc85xx_mc_check(struct mem_ctl_info *mci)
>  		mpc85xx_mc_printk(mci, KERN_ERR, "PFN out of range!\n");
>  
>  	if (err_detect & DDR_EDE_SBE)
> -		edac_mc_handle_ce(mci, pfn, err_addr & PAGE_MASK,
> +		edac_mc_handle_ce(mci, pfn, err_addr & ~PAGE_MASK,
>  				  syndrome, row_index, 0, mci->ctl_name);
>  
>  	if (err_detect & DDR_EDE_MBE)
> -		edac_mc_handle_ue(mci, pfn, err_addr & PAGE_MASK,
> +		edac_mc_handle_ue(mci, pfn, err_addr & ~PAGE_MASK,
>  				  row_index, mci->ctl_name);
>  
>  	out_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DETECT, err_detect);

The patch should have had your Signed-off-by:, as described in
Documentation/SubmittingPatches.  I added your s-o-b to my copy -
please ack this.

From the description it appears to me that this fix should be
backported into 2.6.39.x and earlier.  Do you agree?

The way to indicate this intention is to add "Cc: <stable@kernel.org>"
to the changelog.  I added that tag to my copy of this patch.
shaohui xie - July 15, 2011, 6:21 a.m.
>-----Original Message-----
>From: Andrew Morton [mailto:akpm@linux-foundation.org]
>Sent: Friday, July 15, 2011 5:51 AM
>To: Xie Shaohui-B21989
>Cc: linuxppc-dev@lists.ozlabs.org; Gala Kumar-B11780; Wood Scott-B07421;
>ptyser@xes-inc.com; djiang@mvista.com; dougthompson@xmission.com; Jiang
>Kai-B18973
>Subject: Re: [PATCH] Correct offset_in_page mask bits in function
>edac_mc_handle_ce.
>
>On Thu, 14 Jul 2011 10:01:42 +0800
>Shaohui Xie <Shaohui.Xie@freescale.com> wrote:
>
>> From: Kai.Jiang <Kai.Jiang@freescale.com>
>>
>> Parameter offset_in_page in function edac_mc_handle_ce should be
>> masked the higher bits above the page size, not the lower bits. The
>> original input sometimes causes crash.
>>
>> Signed-off-by: Kai.Jiang <Kai.Jiang@freescale.com>
>> ---
>>  drivers/edac/mpc85xx_edac.c |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
>> index 38ab8e2..b048a5f 100644
>> --- a/drivers/edac/mpc85xx_edac.c
>> +++ b/drivers/edac/mpc85xx_edac.c
>> @@ -854,11 +854,11 @@ static void mpc85xx_mc_check(struct mem_ctl_info
>*mci)
>>  		mpc85xx_mc_printk(mci, KERN_ERR, "PFN out of range!\n");
>>
>>  	if (err_detect & DDR_EDE_SBE)
>> -		edac_mc_handle_ce(mci, pfn, err_addr & PAGE_MASK,
>> +		edac_mc_handle_ce(mci, pfn, err_addr & ~PAGE_MASK,
>>  				  syndrome, row_index, 0, mci->ctl_name);
>>
>>  	if (err_detect & DDR_EDE_MBE)
>> -		edac_mc_handle_ue(mci, pfn, err_addr & PAGE_MASK,
>> +		edac_mc_handle_ue(mci, pfn, err_addr & ~PAGE_MASK,
>>  				  row_index, mci->ctl_name);
>>
>>  	out_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DETECT, err_detect);
>
>The patch should have had your Signed-off-by:, as described in
>Documentation/SubmittingPatches.  I added your s-o-b to my copy - please
>ack this.
[Xie Shaohui] OK, thank you.

>
>From the description it appears to me that this fix should be backported
>into 2.6.39.x and earlier.  Do you agree?
[Xie Shaohui] Actually this patch was created based on 2.6.32, it can be applied 
to 2.6.39 and 3.0 without any change.

>
>The way to indicate this intention is to add "Cc: <stable@kernel.org>"
>to the changelog.  I added that tag to my copy of this patch.

[Xie Shaohui] OK, thank you.


Best Regards, 
Shaohui Xie

Patch

diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
index 38ab8e2..b048a5f 100644
--- a/drivers/edac/mpc85xx_edac.c
+++ b/drivers/edac/mpc85xx_edac.c
@@ -854,11 +854,11 @@  static void mpc85xx_mc_check(struct mem_ctl_info *mci)
 		mpc85xx_mc_printk(mci, KERN_ERR, "PFN out of range!\n");
 
 	if (err_detect & DDR_EDE_SBE)
-		edac_mc_handle_ce(mci, pfn, err_addr & PAGE_MASK,
+		edac_mc_handle_ce(mci, pfn, err_addr & ~PAGE_MASK,
 				  syndrome, row_index, 0, mci->ctl_name);
 
 	if (err_detect & DDR_EDE_MBE)
-		edac_mc_handle_ue(mci, pfn, err_addr & PAGE_MASK,
+		edac_mc_handle_ue(mci, pfn, err_addr & ~PAGE_MASK,
 				  row_index, mci->ctl_name);
 
 	out_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DETECT, err_detect);