linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH powerpc ] Protect smp_processor_id() in arch_spin_unlock_wait()
@ 2012-11-19  6:16 Li Zhong
  2013-01-10  6:02 ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 8+ messages in thread
From: Li Zhong @ 2012-11-19  6:16 UTC (permalink / raw)
  To: PowerPC email list; +Cc: Paul E. McKenney, Paul Mackerras

This patch tries to disable preemption for using smp_processor_id() in arch_spin_unlock_wait(), 
to avoid following report:

[   17.279377] BUG: using smp_processor_id() in preemptible [00000000] code: autorun/1024
[   17.279407] caller is .arch_spin_unlock_wait+0x34/0x80
[   17.279415] Call Trace:
[   17.279423] [c00000000911fb30] [c000000000015230] .show_stack+0x70/0x1c0 (unreliable)
[   17.279441] [c00000000911fbe0] [c0000000003e13b0] .debug_smp_processor_id+0x110/0x130
[   17.279455] [c00000000911fc80] [c00000000004c2b4] .arch_spin_unlock_wait+0x34/0x80
[   17.279470] [c00000000911fd00] [c0000000000b0e50] .task_work_run+0x80/0x160
[   17.279482] [c00000000911fdb0] [c000000000018744] .do_notify_resume+0x94/0xa0
[   17.279495] [c00000000911fe30] [c000000000009d1c] .ret_from_except_lite+0x48/0x4c

Reported-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
---
 arch/powerpc/lib/locks.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/lib/locks.c b/arch/powerpc/lib/locks.c
index bb7cfec..7a7c31b 100644
--- a/arch/powerpc/lib/locks.c
+++ b/arch/powerpc/lib/locks.c
@@ -72,8 +72,10 @@ void arch_spin_unlock_wait(arch_spinlock_t *lock)
 {
 	while (lock->slock) {
 		HMT_low();
+		preempt_disable();
 		if (SHARED_PROCESSOR)
 			__spin_yield(lock);
+		preempt_enable();
 	}
 	HMT_medium();
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-01-25  7:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-19  6:16 [RFC PATCH powerpc ] Protect smp_processor_id() in arch_spin_unlock_wait() Li Zhong
2013-01-10  6:02 ` Benjamin Herrenschmidt
2013-01-10  7:50   ` Li Zhong
2013-01-10  9:00   ` [PATCH powerpc ] Avoid debug_smp_processor_id() check " Li Zhong
2013-01-24  3:47     ` Benjamin Herrenschmidt
2013-01-24 10:13       ` Li Zhong
2013-01-24 21:44         ` Benjamin Herrenschmidt
2013-01-25  7:51           ` [PATCH v2 powerpc ] Avoid debug_smp_processor_id() check in SHARED_PROCESSOR Li Zhong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).