projects
/
firefly-linux-kernel-4.4.55.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0983e56
)
[S390] Fix uninitialized spinlock use
author
Josef 'Jeff' Sipek
<jeffpc@josefsipek.net>
Thu, 21 Aug 2008 17:46:31 +0000
(19:46 +0200)
committer
Martin Schwidefsky
<schwidefsky@de.ibm.com>
Thu, 21 Aug 2008 17:46:39 +0000
(19:46 +0200)
Ever since commit
43ca5c3a1cefdaa09231d64485b8f676118bf1e0
([S390] Convert
monitor calls to function calls.), the kernel refused to IPL with spinlock
debugging enabled.
BUG: spinlock bad magic on CPU#0, swapper/0
lock:
00000000003a4668
, .magic:
00000000
, .owner: <none>/-1, .owner_cpu: 0
CPU: 0 Not tainted 2.6.25 #1
Process swapper (pid: 0, task:
000000000034f958
, ksp:
0000000000377d60
)
0000000000377ab8
0000000000352628
0000000000377d60
0000000000377d60
0000000000016af4
00000000fffff7b5
0000000000377d60
0000000000000000
0000000000000000
0000000000377a18
0000000000000009
0000000000377a18
0000000000377a78
000000000023c920
0000000000016af4
0000000000377a18
0000000000000005
0000000000000000
0000000000377b58
0000000000377ab8
Call Trace:
([<
0000000000016a60
>] show_trace+0xdc/0x108)
[<
0000000000016b4e
>] show_stack+0xc2/0xfc
[<
0000000000016c9a
>] dump_stack+0xb2/0xc0
[<
0000000000172dd4
>]
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/process.c
patch
|
blob
|
history
diff --git
a/arch/s390/kernel/process.c
b/arch/s390/kernel/process.c
index 9839767d0842e5d065524181db75aa075c154798..3e2c05cb6a8733683c57d2935536ee936cc52059 100644
(file)
--- a/
arch/s390/kernel/process.c
+++ b/
arch/s390/kernel/process.c
@@
-75,7
+75,9
@@
unsigned long thread_saved_pc(struct task_struct *tsk)
return sf->gprs[8];
}
-DEFINE_PER_CPU(struct s390_idle_data, s390_idle);
+DEFINE_PER_CPU(struct s390_idle_data, s390_idle) = {
+ .lock = __SPIN_LOCK_UNLOCKED(s390_idle.lock)
+};
static int s390_idle_enter(void)
{