* Re: [PATCH] clocksource: exynos_mct: clear irq at stop local mct to fix suspend
2017-01-17 4:54 ` [PATCH] clocksource: exynos_mct: clear irq at stop local mct to fix suspend Joonyoung Shim
@ 2017-01-17 9:03 ` Thomas Gleixner
2017-01-17 9:13 ` [tip:timers/urgent] clocksource/exynos_mct: Clear interrupt when cpu is shut down tip-bot for Joonyoung Shim
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Gleixner @ 2017-01-17 9:03 UTC (permalink / raw)
To: Joonyoung Shim
Cc: linux-kernel, linux-arm-kernel, linux-samsung-soc, stable,
daniel.lezcano, kgene, krzk, javier, sw0312.kim, cw00.choi
On Tue, 17 Jan 2017, Joonyoung Shim wrote:
> This patch adds clear interrupt to exynos4_mct_dying_cpu(). Without
Please read Documentation/process/SubmittingPatches. Search for 'This
patch' ....
A changelog should explain the problem first and then explain the concept
of the fix. You start explaining WHAT the patch does and not what the
problem is.
> clearing, after turning on non boot cpu at wakeup from suspend to
> ram, not cleared tick interrupt occurs and it causes following null
> deference for MCT_INT_SPI type mct.
This has nothing to do with suspend. That can happen with a normal cpu
offline/online sequence as well, which happens to be utilized by
suspend/resume.
Please trim back traces so they contain only useful information. There is
no point in having all these useless stack entries and whatever, which do
not at all help to diagnose the problem.
I'll fix that up when applying the patch. Checkout the resulting changelog
and please be more careful next time.
> [ 51.251378] Unable to handle kernel NULL pointer dereference at virtual address 00000040
> [ 51.257980] pgd = c0004000
> [ 51.260666] [00000040] *pgd=00000000
> [ 51.264222] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
> [ 51.269503] Modules linked in:
> [ 51.272541] CPU: 7 PID: 53 Comm: ksoftirqd/7 Tainted: G W 4.9.0-rc7-next-20161201-00007-g74076859ec44 #140
> [ 51.283282] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [ 51.289348] task: ee942d00 task.stack: ee960000
> [ 51.293861] PC is at tick_periodic+0x38/0xb0
> [ 51.298102] LR is at tick_handle_periodic+0x1c/0x90
> [ 51.486409] [<c0183358>] (tick_periodic) from [<ef013ec0>] (0xef013ec0)
> [ 51.492990] Code: ee1d2f90 e34c30b6 e8bd4070 e7923003 (e5933040)
> [ 51.499057] ---[ end trace 995703fe1bede0b4 ]---
> Fixes: 56a94f13919c ("clocksource: exynos_mct: Avoid blocking calls in the cpu hotplug notifier")
> Cc: stable@vger.kernel.org #v4.2+ #v4.1.4+ #3.18.18+ #v3.16.18+ #v3.12.46+
Adding the version tags is pointless when you have a Fixes tag, which
allows the stable maintainers to find the affected kernels automatically.
> Reported-by: Seung-Woo Kim <sw0312.kim@samsung.com>
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
This Signed-off-by sequence is wrong.
Seung-Woo reported the problem. You wrote the patch and sent it to the
mailing list. The above sequence suggests that you wrote the patch and
Seung-Woo sent it to the mailing list, which is obviously not the case.
Thanks,
tglx
^ permalink raw reply [flat|nested] 3+ messages in thread* [tip:timers/urgent] clocksource/exynos_mct: Clear interrupt when cpu is shut down
2017-01-17 4:54 ` [PATCH] clocksource: exynos_mct: clear irq at stop local mct to fix suspend Joonyoung Shim
2017-01-17 9:03 ` Thomas Gleixner
@ 2017-01-17 9:13 ` tip-bot for Joonyoung Shim
1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Joonyoung Shim @ 2017-01-17 9:13 UTC (permalink / raw)
To: linux-tip-commits; +Cc: linux-kernel, hpa, jy0922.shim, tglx, mingo, sw0312.kim
Commit-ID: bc7c36eedb0c7004aa06c2afc3c5385adada8fa3
Gitweb: http://git.kernel.org/tip/bc7c36eedb0c7004aa06c2afc3c5385adada8fa3
Author: Joonyoung Shim <jy0922.shim@samsung.com>
AuthorDate: Tue, 17 Jan 2017 13:54:36 +0900
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 17 Jan 2017 10:08:38 +0100
clocksource/exynos_mct: Clear interrupt when cpu is shut down
When a CPU goes offline a potentially pending timer interrupt is not
cleared. When the CPU comes online again then the pending interrupt is
delivered before the per cpu clockevent device is initialized. As a
consequence the tick interrupt handler dereferences a NULL pointer.
[ 51.251378] Unable to handle kernel NULL pointer dereference at virtual address 00000040
[ 51.289348] task: ee942d00 task.stack: ee960000
[ 51.293861] PC is at tick_periodic+0x38/0xb0
[ 51.298102] LR is at tick_handle_periodic+0x1c/0x90
Clear the pending interrupt in the cpu dying path.
Fixes: 56a94f13919c ("clocksource: exynos_mct: Avoid blocking calls in the cpu hotplug notifier")
Reported-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: linux-samsung-soc@vger.kernel.org
Cc: cw00.choi@samsung.com
Cc: daniel.lezcano@linaro.org
Cc: stable@vger.kernel.org
Cc: javier@osg.samsung.com
Cc: kgene@kernel.org
Cc: krzk@kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/1484628876-22065-1-git-send-email-jy0922.shim@samsung.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
drivers/clocksource/exynos_mct.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c
index 4da1dc2..670ff0f 100644
--- a/drivers/clocksource/exynos_mct.c
+++ b/drivers/clocksource/exynos_mct.c
@@ -495,6 +495,7 @@ static int exynos4_mct_dying_cpu(unsigned int cpu)
if (mct_int_type == MCT_INT_SPI) {
if (evt->irq != -1)
disable_irq_nosync(evt->irq);
+ exynos4_mct_write(0x1, mevt->base + MCT_L_INT_CSTAT_OFFSET);
} else {
disable_percpu_irq(mct_irqs[MCT_L0_IRQ]);
}
^ permalink raw reply [flat|nested] 3+ messages in thread