diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2006-12-06 14:18:20 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-06 17:51:14 -0500 |
commit | 4927b3f74c6a2fd92226dcf1542a598be9738808 (patch) | |
tree | aee712f33f32a6dc992434773fd0de41e335078e /drivers/s390/block/dasd.c | |
parent | f9e9dcb38f5106fa8cdac04a9e967d5487f1cd20 (diff) |
[PATCH] More work_struct induced breakage (s390)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/s390/block/dasd.c')
-rw-r--r-- | drivers/s390/block/dasd.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index a2cef57d7bcb..2af2d9b53d18 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
@@ -54,7 +54,7 @@ static void dasd_flush_request_queue(struct dasd_device *); | |||
54 | static void dasd_int_handler(struct ccw_device *, unsigned long, struct irb *); | 54 | static void dasd_int_handler(struct ccw_device *, unsigned long, struct irb *); |
55 | static int dasd_flush_ccw_queue(struct dasd_device *, int); | 55 | static int dasd_flush_ccw_queue(struct dasd_device *, int); |
56 | static void dasd_tasklet(struct dasd_device *); | 56 | static void dasd_tasklet(struct dasd_device *); |
57 | static void do_kick_device(void *data); | 57 | static void do_kick_device(struct work_struct *); |
58 | 58 | ||
59 | /* | 59 | /* |
60 | * SECTION: Operations on the device structure. | 60 | * SECTION: Operations on the device structure. |
@@ -100,7 +100,7 @@ dasd_alloc_device(void) | |||
100 | (unsigned long) device); | 100 | (unsigned long) device); |
101 | INIT_LIST_HEAD(&device->ccw_queue); | 101 | INIT_LIST_HEAD(&device->ccw_queue); |
102 | init_timer(&device->timer); | 102 | init_timer(&device->timer); |
103 | INIT_WORK(&device->kick_work, do_kick_device, device); | 103 | INIT_WORK(&device->kick_work, do_kick_device); |
104 | device->state = DASD_STATE_NEW; | 104 | device->state = DASD_STATE_NEW; |
105 | device->target = DASD_STATE_NEW; | 105 | device->target = DASD_STATE_NEW; |
106 | 106 | ||
@@ -407,11 +407,9 @@ dasd_change_state(struct dasd_device *device) | |||
407 | * event daemon. | 407 | * event daemon. |
408 | */ | 408 | */ |
409 | static void | 409 | static void |
410 | do_kick_device(void *data) | 410 | do_kick_device(struct work_struct *work) |
411 | { | 411 | { |
412 | struct dasd_device *device; | 412 | struct dasd_device *device = container_of(work, struct dasd_device, kick_work); |
413 | |||
414 | device = (struct dasd_device *) data; | ||
415 | dasd_change_state(device); | 413 | dasd_change_state(device); |
416 | dasd_schedule_bh(device); | 414 | dasd_schedule_bh(device); |
417 | dasd_put_device(device); | 415 | dasd_put_device(device); |