Messages in this thread | | | Date | Tue, 17 Aug 2010 12:27:05 +0800 | Subject | Re: [PATCH] fix BUG using smp_processor_id() in touch_nmi_watchdog and touch_softlockup_watchdog | From | Yong Zhang <> |
| |
On Mon, Aug 16, 2010 at 10:30 PM, Don Zickus <dzickus@redhat.com> wrote: >> Patch also removes double smp_processor_id call (smp_processor_id itself and in >> __get_cpu_var) in __touch_watchdog.
After checking touch_softlockup_watchdog() and touch_nmi_watchdog() in before version, __raw_get_cpu_var() is used there.
Thanks, Yong
>> >> Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> > > Acked-by: Don Zickus <dzickus@redhat.com> > >> >> --- >> >> diff --git a/kernel/watchdog.c b/kernel/watchdog.c >> index 613bc1f..8822f1e 100644 >> --- a/kernel/watchdog.c >> +++ b/kernel/watchdog.c >> @@ -116,13 +116,14 @@ static unsigned long get_sample_period(void) >> static void __touch_watchdog(void) >> { >> int this_cpu = smp_processor_id(); >> - >> - __get_cpu_var(watchdog_touch_ts) = get_timestamp(this_cpu); >> + per_cpu(watchdog_touch_ts, this_cpu) = get_timestamp(this_cpu); >> } >> >> void touch_softlockup_watchdog(void) >> { >> - __get_cpu_var(watchdog_touch_ts) = 0; >> + int this_cpu = get_cpu(); >> + per_cpu(watchdog_touch_ts, this_cpu) = 0; >> + put_cpu(); >> } >> EXPORT_SYMBOL(touch_softlockup_watchdog); >> >> @@ -142,7 +143,9 @@ void touch_all_softlockup_watchdogs(void) >> #ifdef CONFIG_HARDLOCKUP_DETECTOR >> void touch_nmi_watchdog(void) >> { >> - __get_cpu_var(watchdog_nmi_touch) = true; >> + int this_cpu = get_cpu(); >> + per_cpu(watchdog_nmi_touch, this_cpu) = true; >> + put_cpu(); >> touch_softlockup_watchdog(); >> } >> EXPORT_SYMBOL(touch_nmi_watchdog); >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |