Messages in this thread Patch in this message | | | Date | Wed, 28 Apr 2010 21:24:09 +0200 | From | Robert Richter <> | Subject | [PATCH] oprofile, hrtimer: only add samples if regs are available |
| |
On 28.04.10 18:59:06, Robert Richter wrote: > On 27.04.10 20:47:51, Siarhei Siamashka wrote: > > Isn't hrtimer callback function supposed to be only called from IRQ context > > after this cleanup: http://lwn.net/Articles/308545/ ? > > Yes, the patch is upstream since v2.6.29. Thanks Siarhei. > > I will add a null pointer check anyway.
--
From ad8a6546b32d22ecf92b4448ad329133d18dde0f Mon Sep 17 00:00:00 2001 From: Robert Richter <robert.richter@amd.com> Date: Wed, 28 Apr 2010 20:43:18 +0200 Subject: [PATCH] oprofile, hrtimer: only add samples if regs are available
This patch adds a check if the regs pointer is valid. This actually should not happen since hrtimer notification code should always run in hard_irq context after this commit (since v2.6.29):
ca10949 hrtimer: removing all ur callback modes
However, if code does not run in interrupt context, regs will be null:
http://www.mail-archive.com/linux-omap@vger.kernel.org/msg14074.html
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Robert Richter <robert.richter@amd.com> --- drivers/oprofile/timer_int.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/oprofile/timer_int.c b/drivers/oprofile/timer_int.c index dc0ae4d..ca3436c 100644 --- a/drivers/oprofile/timer_int.c +++ b/drivers/oprofile/timer_int.c @@ -24,8 +24,12 @@ static DEFINE_PER_CPU(struct hrtimer, oprofile_hrtimer); static enum hrtimer_restart oprofile_hrtimer_notify(struct hrtimer *hrtimer) { - oprofile_add_sample(get_irq_regs(), 0); + struct pt_regs *regs = get_irq_regs(); + + if (regs) + oprofile_add_sample(regs, 0); hrtimer_forward_now(hrtimer, ns_to_ktime(TICK_NSEC)); + return HRTIMER_RESTART; } -- 1.7.0.3
-- Advanced Micro Devices, Inc. Operating System Research Center email: robert.richter@amd.com
| |