Re: [PATCH] clocksource: exynos_mct: clear irq at stop local mct to fix suspend

2017-01-17 Thread Thomas Gleixner
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 0040
> [   51.257980] pgd = c0004000
> [   51.260666] [0040] *pgd=
> [   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: GW 
> 4.9.0-rc7-next-20161201-7-g74076859ec44 #140
> [   51.283282] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [   51.289348] task: ee942d00 task.stack: ee96
> [   51.293861] PC is at tick_periodic+0x38/0xb0
> [   51.298102] LR is at tick_handle_periodic+0x1c/0x90
> [   51.486409] [] (tick_periodic) from [] (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: sta...@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 
> Signed-off-by: Joonyoung Shim 
> Signed-off-by: Seung-Woo Kim 

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




Re: [PATCH] clocksource: exynos_mct: clear irq at stop local mct to fix suspend

2017-01-17 Thread Thomas Gleixner
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 0040
> [   51.257980] pgd = c0004000
> [   51.260666] [0040] *pgd=
> [   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: GW 
> 4.9.0-rc7-next-20161201-7-g74076859ec44 #140
> [   51.283282] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
> [   51.289348] task: ee942d00 task.stack: ee96
> [   51.293861] PC is at tick_periodic+0x38/0xb0
> [   51.298102] LR is at tick_handle_periodic+0x1c/0x90
> [   51.486409] [] (tick_periodic) from [] (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: sta...@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 
> Signed-off-by: Joonyoung Shim 
> Signed-off-by: Seung-Woo Kim 

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




[PATCH] clocksource: exynos_mct: clear irq at stop local mct to fix suspend

2017-01-16 Thread Joonyoung Shim
This patch adds clear interrupt to exynos4_mct_dying_cpu(). Without
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.

[   51.251378] Unable to handle kernel NULL pointer dereference at virtual 
address 0040
[   51.257980] pgd = c0004000
[   51.260666] [0040] *pgd=
[   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: GW 
4.9.0-rc7-next-20161201-7-g74076859ec44 #140
[   51.283282] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[   51.289348] task: ee942d00 task.stack: ee96
[   51.293861] PC is at tick_periodic+0x38/0xb0
[   51.298102] LR is at tick_handle_periodic+0x1c/0x90
[   51.302956] pc : []lr : []psr: 2093
[   51.302956] sp : ee961e18  ip : f0806000  fp : 0100
[   51.314391] r10: c0c0ef6a  r9 : 000b  r8 : eebcf080
[   51.319591] r7 : ee961e7c  r6 :   r5 : 0007  r4 : ef013ec0
[   51.326090] r3 :   r2 : 2e4ac000  r1 : c09ae9a8  r0 : 0007
[   51.332591] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM Segment none
[   51.339781] Control: 10c5387d  Table: 4000406a  DAC: 0051
[   51.345501] Process ksoftirqd/7 (pid: 53, stack limit = 0xee960210)
[   51.351740] Stack: (0xee961e18 to 0xee962000)
[   51.356073] 1e00: ef014db0 c0c03dac
[   51.364222] 1e20:  ef013ec0 ee854100  ee961e7c 0039 
ee854100 c0c0ef6a
[   51.372367] 1e40: 0100 c055bd44 ee852840 c0164a18  0001 
ee854100 ee854100
[   51.380512] 1e60: c0c03f24 c0b6324c c0c02080 c0c02080 4006 c0164ac4 
 
[   51.388658] 1e80: 0100 ee854100 ee854160 c0164b38 ee854100 ee854160 
c0c03f24 c0167e9c
[   51.396804] 1ea0: 0039 c0c0cbac c0c0cbac c0b6324c c0c02080 c01675e0 
c0c0cc5c c0c0cc60
[   51.404949] 1ec0:  c011fd3c  0006 c0c02098 ee96 
c0c02080 c011ff6c
[   51.413095] 1ee0: ee961f0c c06fb4a4 ee961ee0 c0c47f80 000a 9ed5 
c0c03900 04208040
[   51.421240] 1f00: c0c0a174 ee96 ee867b00 0007 0001 c0c0a174 
0002 
[   51.429385] 1f20:  c01200b8 ee96 c013a50c  ee867b80 
ee867b00 c013a3b0
[   51.437530] 1f40:    c0136cbc  0001 
0007 ee867b00
[   51.445676] 1f60:  00270027 dead4ead   ee961f74 
ee961f74 
[   51.453822] 1f80:  dead4ead   ee961f90 ee961f90 
ee961fac ee867b80
[   51.461967] 1fa0: c0136be0   c0107a78   
 
[   51.470112] 1fc0:       
 
[   51.478258] 1fe0:     0013  
 
[   51.486409] [] (tick_periodic) from [] (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: sta...@vger.kernel.org #v4.2+ #v4.1.4+ #3.18.18+ #v3.16.18+ #v3.12.46+
Reported-by: Seung-Woo Kim 
Signed-off-by: Joonyoung Shim 
Signed-off-by: Seung-Woo Kim 
---
 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]);
}
-- 
1.9.1



[PATCH] clocksource: exynos_mct: clear irq at stop local mct to fix suspend

2017-01-16 Thread Joonyoung Shim
This patch adds clear interrupt to exynos4_mct_dying_cpu(). Without
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.

[   51.251378] Unable to handle kernel NULL pointer dereference at virtual 
address 0040
[   51.257980] pgd = c0004000
[   51.260666] [0040] *pgd=
[   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: GW 
4.9.0-rc7-next-20161201-7-g74076859ec44 #140
[   51.283282] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[   51.289348] task: ee942d00 task.stack: ee96
[   51.293861] PC is at tick_periodic+0x38/0xb0
[   51.298102] LR is at tick_handle_periodic+0x1c/0x90
[   51.302956] pc : []lr : []psr: 2093
[   51.302956] sp : ee961e18  ip : f0806000  fp : 0100
[   51.314391] r10: c0c0ef6a  r9 : 000b  r8 : eebcf080
[   51.319591] r7 : ee961e7c  r6 :   r5 : 0007  r4 : ef013ec0
[   51.326090] r3 :   r2 : 2e4ac000  r1 : c09ae9a8  r0 : 0007
[   51.332591] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM Segment none
[   51.339781] Control: 10c5387d  Table: 4000406a  DAC: 0051
[   51.345501] Process ksoftirqd/7 (pid: 53, stack limit = 0xee960210)
[   51.351740] Stack: (0xee961e18 to 0xee962000)
[   51.356073] 1e00: ef014db0 c0c03dac
[   51.364222] 1e20:  ef013ec0 ee854100  ee961e7c 0039 
ee854100 c0c0ef6a
[   51.372367] 1e40: 0100 c055bd44 ee852840 c0164a18  0001 
ee854100 ee854100
[   51.380512] 1e60: c0c03f24 c0b6324c c0c02080 c0c02080 4006 c0164ac4 
 
[   51.388658] 1e80: 0100 ee854100 ee854160 c0164b38 ee854100 ee854160 
c0c03f24 c0167e9c
[   51.396804] 1ea0: 0039 c0c0cbac c0c0cbac c0b6324c c0c02080 c01675e0 
c0c0cc5c c0c0cc60
[   51.404949] 1ec0:  c011fd3c  0006 c0c02098 ee96 
c0c02080 c011ff6c
[   51.413095] 1ee0: ee961f0c c06fb4a4 ee961ee0 c0c47f80 000a 9ed5 
c0c03900 04208040
[   51.421240] 1f00: c0c0a174 ee96 ee867b00 0007 0001 c0c0a174 
0002 
[   51.429385] 1f20:  c01200b8 ee96 c013a50c  ee867b80 
ee867b00 c013a3b0
[   51.437530] 1f40:    c0136cbc  0001 
0007 ee867b00
[   51.445676] 1f60:  00270027 dead4ead   ee961f74 
ee961f74 
[   51.453822] 1f80:  dead4ead   ee961f90 ee961f90 
ee961fac ee867b80
[   51.461967] 1fa0: c0136be0   c0107a78   
 
[   51.470112] 1fc0:       
 
[   51.478258] 1fe0:     0013  
 
[   51.486409] [] (tick_periodic) from [] (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: sta...@vger.kernel.org #v4.2+ #v4.1.4+ #3.18.18+ #v3.16.18+ #v3.12.46+
Reported-by: Seung-Woo Kim 
Signed-off-by: Joonyoung Shim 
Signed-off-by: Seung-Woo Kim 
---
 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]);
}
-- 
1.9.1