Message ID | 20200611023238.3830-1-zhenzhong.duan@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | x86/mce: fix a wrong assignment of i_mce.status | expand |
+Yazen On Thu, Jun 11, 2020 at 10:32:38AM +0800, Zhenzhong Duan wrote: > The original code is a nop as i_mce.status is or'ed with part of itself, > fix it. > > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@gmail.com> > --- > arch/x86/kernel/cpu/mce/inject.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inject.c > index 3413b41..dc28a61 100644 > --- a/arch/x86/kernel/cpu/mce/inject.c > +++ b/arch/x86/kernel/cpu/mce/inject.c > @@ -511,7 +511,7 @@ static void do_inject(void) > */ > if (inj_type == DFR_INT_INJ) { > i_mce.status |= MCI_STATUS_DEFERRED; > - i_mce.status |= (i_mce.status & ~MCI_STATUS_UC); > + i_mce.status &= ~MCI_STATUS_UC; Boris: "git blame" says you wrote this code. Patch looks right (in that it makes the code do what the comment just above says it is trying to do): * - MCx_STATUS[UC] cleared: deferred errors are _not_ UC But this is AMD specific, so I'll defer judgement -Tony
On Thu, Jun 11, 2020 at 12:55:00PM -0400, Luck, Tony wrote: > +Yazen > > On Thu, Jun 11, 2020 at 10:32:38AM +0800, Zhenzhong Duan wrote: > > The original code is a nop as i_mce.status is or'ed with part of itself, > > fix it. > > > > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@gmail.com> > > --- > > arch/x86/kernel/cpu/mce/inject.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inject.c > > index 3413b41..dc28a61 100644 > > --- a/arch/x86/kernel/cpu/mce/inject.c > > +++ b/arch/x86/kernel/cpu/mce/inject.c > > @@ -511,7 +511,7 @@ static void do_inject(void) > > */ > > if (inj_type == DFR_INT_INJ) { > > i_mce.status |= MCI_STATUS_DEFERRED; > > - i_mce.status |= (i_mce.status & ~MCI_STATUS_UC); > > + i_mce.status &= ~MCI_STATUS_UC; > > Boris: "git blame" says you wrote this code. Patch looks right (in > that it makes the code do what the comment just above says it is trying > to do): > > * - MCx_STATUS[UC] cleared: deferred errors are _not_ UC > > But this is AMD specific, so I'll defer judgement > Acked-by: Yazen Ghannam <yazen.ghannam@amd.com> Thanks, Yazen
On Thu, Jun 11, 2020 at 09:55:00AM -0700, Luck, Tony wrote: > +Yazen > > On Thu, Jun 11, 2020 at 10:32:38AM +0800, Zhenzhong Duan wrote: > > The original code is a nop as i_mce.status is or'ed with part of itself, > > fix it. > > > > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@gmail.com> > > --- > > arch/x86/kernel/cpu/mce/inject.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inject.c > > index 3413b41..dc28a61 100644 > > --- a/arch/x86/kernel/cpu/mce/inject.c > > +++ b/arch/x86/kernel/cpu/mce/inject.c > > @@ -511,7 +511,7 @@ static void do_inject(void) > > */ > > if (inj_type == DFR_INT_INJ) { > > i_mce.status |= MCI_STATUS_DEFERRED; > > - i_mce.status |= (i_mce.status & ~MCI_STATUS_UC); > > + i_mce.status &= ~MCI_STATUS_UC; > > Boris: "git blame" says you wrote this code. Not me but I should've caught it: a1300e505297 ("x86/ras/mce_amd_inj: Trigger deferred and thresholding errors interrupts") :-\ I believe Aravind wanted to do the &= thing, i.e., i_mce.status = (i_mce.status & ~MCI_STATUS_UC); or the short version above. :-)
diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inject.c index 3413b41..dc28a61 100644 --- a/arch/x86/kernel/cpu/mce/inject.c +++ b/arch/x86/kernel/cpu/mce/inject.c @@ -511,7 +511,7 @@ static void do_inject(void) */ if (inj_type == DFR_INT_INJ) { i_mce.status |= MCI_STATUS_DEFERRED; - i_mce.status |= (i_mce.status & ~MCI_STATUS_UC); + i_mce.status &= ~MCI_STATUS_UC; } /*
The original code is a nop as i_mce.status is or'ed with part of itself, fix it. Signed-off-by: Zhenzhong Duan <zhenzhong.duan@gmail.com> --- arch/x86/kernel/cpu/mce/inject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)