projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
74521c2
)
[S390] cio: use INIT_WORK to initialize struct work.
author
Heiko Carstens
<heiko.carstens@de.ibm.com>
Mon, 5 Nov 2007 10:10:07 +0000
(11:10 +0100)
committer
Martin Schwidefsky
<schwidefsky@de.ibm.com>
Mon, 5 Nov 2007 10:10:16 +0000
(11:10 +0100)
Use INIT_WORK to initialize struct work and don't initialize a
struct work partial by explicitly initializing its private structures.
Fixes the following lockdep bug because no key was assigned:
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
0000000001f07bb8
0000000001f07bf8
0000000000000002
0000000000000000
0000000001f07c98
0000000001f07c10
0000000001f07c10
0000000000015406
0000000000000000
0000000000000002
0000000000000000
0000000000000000
0000000001f07bf8
000000000000000c
0000000001f07bf8
0000000001f07c68
000000000039ae60
0000000000015406
0000000001f07bf8
0000000001f07c48
Call Trace:
([<
0000000000015376
>] show_trace+0xda/0x104)
[<
0000000000015460
>] show_stack+0xc0/0xf8
[<
00000000000154c6
>] dump_stack+0x2e/0x3c
[<
000000000006a71e
>] __lock_acquire+0x47e/0x11a0
[<
000000000006b4f0
>] lock_acquire+0xb0/0xd8
[<
00000000000555a6
>] run_workqueue+0x1aa/0x24c
[<
00000000000556de
>] worker_thread+0x96/0xf4
[<
000000000005c210
>] kthread+0x90/0xb4
[<
000000000001947a
>] kernel_thread_starter+0x6/0xc
[<
0000000000019474
>] kernel_thread_starter+0x0/0xc
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/device.c
patch
|
blob
|
history
diff --git
a/drivers/s390/cio/device.c
b/drivers/s390/cio/device.c
index
7ee57f0
..
74f6b53
100644
(file)
--- a/
drivers/s390/cio/device.c
+++ b/
drivers/s390/cio/device.c
@@
-738,7
+738,7
@@
static int io_subchannel_initialize_dev(struct subchannel *sch,
atomic_set(&cdev->private->onoff, 0);
cdev->dev.parent = &sch->dev;
cdev->dev.release = ccw_device_release;
- INIT_
LIST_HEAD(&cdev->private->kick_work.entry
);
+ INIT_
WORK(&cdev->private->kick_work, NULL
);
cdev->dev.groups = ccwdev_attr_groups;
/* Do first half of device_register. */
device_initialize(&cdev->dev);