From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Don Zickus <dzickus@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org
Subject: [PATCH] fix BUG using smp_processor_id() in touch_nmi_watchdog and touch_softlockup_watchdog (v2)
Date: Tue, 17 Aug 2010 10:56:12 +0300 [thread overview]
Message-ID: <20100817075612.GA5346@swordfish.minsk.epam.com> (raw)
In-Reply-To: <20100817025954.GA12366@nowhere>
Fix: acpi_os_stall calls touch_nmi_watchdog and touch_softlockup_watchdog
with preemption enabled causing 'BUG: using smp_processor_id() in preemptible
code'.
Patch also removes double smp_processor_id call (smp_processor_id itself and
in __get_cpu_var) in __touch_watchdog.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
---
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 613bc1f..cb4f4d4 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)
{
+ preempt_disable();
__get_cpu_var(watchdog_touch_ts) = 0;
+ preempt_enable();
}
EXPORT_SYMBOL(touch_softlockup_watchdog);
@@ -142,7 +143,10 @@ void touch_all_softlockup_watchdogs(void)
#ifdef CONFIG_HARDLOCKUP_DETECTOR
void touch_nmi_watchdog(void)
{
+ preempt_disable();
__get_cpu_var(watchdog_nmi_touch) = true;
+ preempt_enable();
+
touch_softlockup_watchdog();
}
EXPORT_SYMBOL(touch_nmi_watchdog);
next prev parent reply other threads:[~2010-08-17 7:56 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-13 10:21 fix BUG: using smp_processor_id() in touch_nmi_watchdog and touch_softlockup_watchdog Sergey Senozhatsky
2010-08-16 8:22 ` Peter Zijlstra
2010-08-16 13:34 ` Don Zickus
2010-08-16 13:46 ` Peter Zijlstra
2010-08-16 14:08 ` [PATCH] fix BUG " Sergey Senozhatsky
2010-08-16 14:30 ` Don Zickus
2010-08-17 4:27 ` Yong Zhang
2010-08-17 2:59 ` Frederic Weisbecker
2010-08-17 3:16 ` Yong Zhang
2010-08-17 8:39 ` Sergey Senozhatsky
2010-08-17 9:05 ` Yong Zhang
2010-08-17 9:24 ` Sergey Senozhatsky
2010-08-17 9:37 ` Yong Zhang
2010-08-17 10:28 ` Sergey Senozhatsky
2010-08-17 12:48 ` Yong Zhang
2010-08-17 10:39 ` Sergey Senozhatsky
2010-08-17 12:56 ` Yong Zhang
2010-08-17 13:13 ` Don Zickus
2010-08-18 2:48 ` Frederic Weisbecker
2010-08-18 20:01 ` Andrew Morton
2010-08-19 2:27 ` Don Zickus
2010-08-20 2:57 ` Don Zickus
2010-08-20 3:42 ` Andrew Morton
2010-08-20 12:34 ` Don Zickus
2010-08-26 17:17 ` acpi_os_stall() and touch_nmi_watchdog() (was Re: [PATCH] fix BUG using smp_processor_id() in touch_nmi_watchdog and touch_softlockup_watchdog) Len Brown
2010-08-20 15:02 ` [PATCH] fix BUG using smp_processor_id() in touch_nmi_watchdog and touch_softlockup_watchdog Yong Zhang
2010-08-26 10:14 ` Maxim Levitsky
2010-08-26 14:40 ` Don Zickus
2010-08-17 7:56 ` Sergey Senozhatsky [this message]
2010-08-16 14:12 ` fix BUG: " Don Zickus
2010-08-16 14:29 ` Peter Zijlstra
2010-08-16 14:06 ` Yong Zhang
2010-08-18 19:33 ` Andrew Morton
2010-08-18 21:44 ` Cyrill Gorcunov
2010-09-22 9:00 ` [PATCH] avoid second smp_processor_id() call in __touch_watchdog Sergey Senozhatsky
2010-09-22 14:41 ` Don Zickus
2010-09-22 16:27 ` Frederic Weisbecker
2010-09-22 16:39 ` Peter Zijlstra
2010-09-22 16:47 ` Frederic Weisbecker
2010-09-24 19:34 ` Don Zickus
2010-09-25 17:43 ` Sergey Senozhatsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100817075612.GA5346@swordfish.minsk.epam.com \
--to=sergey.senozhatsky@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=dzickus@redhat.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.