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 | |
| 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>
| -rw-r--r-- | drivers/s390/block/dasd.c | 10 | ||||
| -rw-r--r-- | drivers/s390/cio/css.c | 9 | ||||
| -rw-r--r-- | drivers/s390/crypto/ap_bus.c | 6 | ||||
| -rw-r--r-- | drivers/s390/net/lcs.c | 8 | ||||
| -rw-r--r-- | drivers/s390/net/qeth_main.c | 6 | ||||
| -rw-r--r-- | drivers/scsi/oktagon_esp.c | 6 |
6 files changed, 21 insertions, 24 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); |
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index ad7f7e1c0163..26cf2f5ae2e7 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c | |||
| @@ -334,7 +334,7 @@ static LIST_HEAD(slow_subchannels_head); | |||
| 334 | static DEFINE_SPINLOCK(slow_subchannel_lock); | 334 | static DEFINE_SPINLOCK(slow_subchannel_lock); |
| 335 | 335 | ||
| 336 | static void | 336 | static void |
| 337 | css_trigger_slow_path(void) | 337 | css_trigger_slow_path(struct work_struct *unused) |
| 338 | { | 338 | { |
| 339 | CIO_TRACE_EVENT(4, "slowpath"); | 339 | CIO_TRACE_EVENT(4, "slowpath"); |
| 340 | 340 | ||
| @@ -359,8 +359,7 @@ css_trigger_slow_path(void) | |||
| 359 | spin_unlock_irq(&slow_subchannel_lock); | 359 | spin_unlock_irq(&slow_subchannel_lock); |
| 360 | } | 360 | } |
| 361 | 361 | ||
| 362 | typedef void (*workfunc)(void *); | 362 | DECLARE_WORK(slow_path_work, css_trigger_slow_path); |
| 363 | DECLARE_WORK(slow_path_work, (workfunc)css_trigger_slow_path, NULL); | ||
| 364 | struct workqueue_struct *slow_path_wq; | 363 | struct workqueue_struct *slow_path_wq; |
| 365 | 364 | ||
| 366 | /* Reprobe subchannel if unregistered. */ | 365 | /* Reprobe subchannel if unregistered. */ |
| @@ -397,7 +396,7 @@ static int reprobe_subchannel(struct subchannel_id schid, void *data) | |||
| 397 | } | 396 | } |
| 398 | 397 | ||
| 399 | /* Work function used to reprobe all unregistered subchannels. */ | 398 | /* Work function used to reprobe all unregistered subchannels. */ |
| 400 | static void reprobe_all(void *data) | 399 | static void reprobe_all(struct work_struct *unused) |
| 401 | { | 400 | { |
| 402 | int ret; | 401 | int ret; |
| 403 | 402 | ||
| @@ -413,7 +412,7 @@ static void reprobe_all(void *data) | |||
| 413 | need_reprobe); | 412 | need_reprobe); |
| 414 | } | 413 | } |
| 415 | 414 | ||
| 416 | DECLARE_WORK(css_reprobe_work, reprobe_all, NULL); | 415 | DECLARE_WORK(css_reprobe_work, reprobe_all); |
| 417 | 416 | ||
| 418 | /* Schedule reprobing of all unregistered subchannels. */ | 417 | /* Schedule reprobing of all unregistered subchannels. */ |
| 419 | void css_schedule_reprobe(void) | 418 | void css_schedule_reprobe(void) |
diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index 6a54334ffe09..e4dc947e74e9 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c | |||
| @@ -37,7 +37,7 @@ | |||
| 37 | #include "ap_bus.h" | 37 | #include "ap_bus.h" |
| 38 | 38 | ||
| 39 | /* Some prototypes. */ | 39 | /* Some prototypes. */ |
| 40 | static void ap_scan_bus(void *); | 40 | static void ap_scan_bus(struct work_struct *); |
| 41 | static void ap_poll_all(unsigned long); | 41 | static void ap_poll_all(unsigned long); |
| 42 | static void ap_poll_timeout(unsigned long); | 42 | static void ap_poll_timeout(unsigned long); |
| 43 | static int ap_poll_thread_start(void); | 43 | static int ap_poll_thread_start(void); |
| @@ -71,7 +71,7 @@ static struct device *ap_root_device = NULL; | |||
| 71 | static struct workqueue_struct *ap_work_queue; | 71 | static struct workqueue_struct *ap_work_queue; |
| 72 | static struct timer_list ap_config_timer; | 72 | static struct timer_list ap_config_timer; |
| 73 | static int ap_config_time = AP_CONFIG_TIME; | 73 | static int ap_config_time = AP_CONFIG_TIME; |
| 74 | static DECLARE_WORK(ap_config_work, ap_scan_bus, NULL); | 74 | static DECLARE_WORK(ap_config_work, ap_scan_bus); |
| 75 | 75 | ||
| 76 | /** | 76 | /** |
| 77 | * Tasklet & timer for AP request polling. | 77 | * Tasklet & timer for AP request polling. |
| @@ -732,7 +732,7 @@ static void ap_device_release(struct device *dev) | |||
| 732 | kfree(ap_dev); | 732 | kfree(ap_dev); |
| 733 | } | 733 | } |
| 734 | 734 | ||
| 735 | static void ap_scan_bus(void *data) | 735 | static void ap_scan_bus(struct work_struct *unused) |
| 736 | { | 736 | { |
| 737 | struct ap_device *ap_dev; | 737 | struct ap_device *ap_dev; |
| 738 | struct device *dev; | 738 | struct device *dev; |
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c index 08d4e47070bd..e5665b6743a1 100644 --- a/drivers/s390/net/lcs.c +++ b/drivers/s390/net/lcs.c | |||
| @@ -67,7 +67,7 @@ static char debug_buffer[255]; | |||
| 67 | * Some prototypes. | 67 | * Some prototypes. |
| 68 | */ | 68 | */ |
| 69 | static void lcs_tasklet(unsigned long); | 69 | static void lcs_tasklet(unsigned long); |
| 70 | static void lcs_start_kernel_thread(struct lcs_card *card); | 70 | static void lcs_start_kernel_thread(struct work_struct *); |
| 71 | static void lcs_get_frames_cb(struct lcs_channel *, struct lcs_buffer *); | 71 | static void lcs_get_frames_cb(struct lcs_channel *, struct lcs_buffer *); |
| 72 | static int lcs_send_delipm(struct lcs_card *, struct lcs_ipm_list *); | 72 | static int lcs_send_delipm(struct lcs_card *, struct lcs_ipm_list *); |
| 73 | static int lcs_recovery(void *ptr); | 73 | static int lcs_recovery(void *ptr); |
| @@ -1724,8 +1724,9 @@ lcs_stopcard(struct lcs_card *card) | |||
| 1724 | * Kernel Thread helper functions for LGW initiated commands | 1724 | * Kernel Thread helper functions for LGW initiated commands |
| 1725 | */ | 1725 | */ |
| 1726 | static void | 1726 | static void |
| 1727 | lcs_start_kernel_thread(struct lcs_card *card) | 1727 | lcs_start_kernel_thread(struct work_struct *work) |
| 1728 | { | 1728 | { |
| 1729 | struct lcs_card *card = container_of(work, struct lcs_card, kernel_thread_starter); | ||
| 1729 | LCS_DBF_TEXT(5, trace, "krnthrd"); | 1730 | LCS_DBF_TEXT(5, trace, "krnthrd"); |
| 1730 | if (lcs_do_start_thread(card, LCS_RECOVERY_THREAD)) | 1731 | if (lcs_do_start_thread(card, LCS_RECOVERY_THREAD)) |
| 1731 | kernel_thread(lcs_recovery, (void *) card, SIGCHLD); | 1732 | kernel_thread(lcs_recovery, (void *) card, SIGCHLD); |
| @@ -2053,8 +2054,7 @@ lcs_probe_device(struct ccwgroup_device *ccwgdev) | |||
| 2053 | ccwgdev->cdev[0]->handler = lcs_irq; | 2054 | ccwgdev->cdev[0]->handler = lcs_irq; |
| 2054 | ccwgdev->cdev[1]->handler = lcs_irq; | 2055 | ccwgdev->cdev[1]->handler = lcs_irq; |
| 2055 | card->gdev = ccwgdev; | 2056 | card->gdev = ccwgdev; |
| 2056 | INIT_WORK(&card->kernel_thread_starter, | 2057 | INIT_WORK(&card->kernel_thread_starter, lcs_start_kernel_thread); |
| 2057 | (void *) lcs_start_kernel_thread, card); | ||
| 2058 | card->thread_start_mask = 0; | 2058 | card->thread_start_mask = 0; |
| 2059 | card->thread_allowed_mask = 0; | 2059 | card->thread_allowed_mask = 0; |
| 2060 | card->thread_running_mask = 0; | 2060 | card->thread_running_mask = 0; |
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c index 7fdc5272c446..2bde4f1fb9c2 100644 --- a/drivers/s390/net/qeth_main.c +++ b/drivers/s390/net/qeth_main.c | |||
| @@ -1039,8 +1039,9 @@ qeth_do_start_thread(struct qeth_card *card, unsigned long thread) | |||
| 1039 | } | 1039 | } |
| 1040 | 1040 | ||
| 1041 | static void | 1041 | static void |
| 1042 | qeth_start_kernel_thread(struct qeth_card *card) | 1042 | qeth_start_kernel_thread(struct work_struct *work) |
| 1043 | { | 1043 | { |
| 1044 | struct qeth_card *card = container_of(work, struct qeth_card, kernel_thread_starter); | ||
| 1044 | QETH_DBF_TEXT(trace , 2, "strthrd"); | 1045 | QETH_DBF_TEXT(trace , 2, "strthrd"); |
| 1045 | 1046 | ||
| 1046 | if (card->read.state != CH_STATE_UP && | 1047 | if (card->read.state != CH_STATE_UP && |
| @@ -1103,8 +1104,7 @@ qeth_setup_card(struct qeth_card *card) | |||
| 1103 | card->thread_start_mask = 0; | 1104 | card->thread_start_mask = 0; |
| 1104 | card->thread_allowed_mask = 0; | 1105 | card->thread_allowed_mask = 0; |
| 1105 | card->thread_running_mask = 0; | 1106 | card->thread_running_mask = 0; |
| 1106 | INIT_WORK(&card->kernel_thread_starter, | 1107 | INIT_WORK(&card->kernel_thread_starter, qeth_start_kernel_thread); |
| 1107 | (void *)qeth_start_kernel_thread,card); | ||
| 1108 | INIT_LIST_HEAD(&card->ip_list); | 1108 | INIT_LIST_HEAD(&card->ip_list); |
| 1109 | card->ip_tbd_list = kmalloc(sizeof(struct list_head), GFP_KERNEL); | 1109 | card->ip_tbd_list = kmalloc(sizeof(struct list_head), GFP_KERNEL); |
| 1110 | if (!card->ip_tbd_list) { | 1110 | if (!card->ip_tbd_list) { |
diff --git a/drivers/scsi/oktagon_esp.c b/drivers/scsi/oktagon_esp.c index dd67a68c5c23..c116a6ae3c54 100644 --- a/drivers/scsi/oktagon_esp.c +++ b/drivers/scsi/oktagon_esp.c | |||
| @@ -72,12 +72,12 @@ static void dma_advance_sg(Scsi_Cmnd *); | |||
| 72 | static int oktagon_notify_reboot(struct notifier_block *this, unsigned long code, void *x); | 72 | static int oktagon_notify_reboot(struct notifier_block *this, unsigned long code, void *x); |
| 73 | 73 | ||
| 74 | #ifdef USE_BOTTOM_HALF | 74 | #ifdef USE_BOTTOM_HALF |
| 75 | static void dma_commit(void *opaque); | 75 | static void dma_commit(struct work_struct *unused); |
| 76 | 76 | ||
| 77 | long oktag_to_io(long *paddr, long *addr, long len); | 77 | long oktag_to_io(long *paddr, long *addr, long len); |
| 78 | long oktag_from_io(long *addr, long *paddr, long len); | 78 | long oktag_from_io(long *addr, long *paddr, long len); |
| 79 | 79 | ||
| 80 | static DECLARE_WORK(tq_fake_dma, dma_commit, NULL); | 80 | static DECLARE_WORK(tq_fake_dma, dma_commit); |
| 81 | 81 | ||
| 82 | #define DMA_MAXTRANSFER 0x8000 | 82 | #define DMA_MAXTRANSFER 0x8000 |
| 83 | 83 | ||
| @@ -266,7 +266,7 @@ oktagon_notify_reboot(struct notifier_block *this, unsigned long code, void *x) | |||
| 266 | */ | 266 | */ |
| 267 | 267 | ||
| 268 | 268 | ||
| 269 | static void dma_commit(void *opaque) | 269 | static void dma_commit(struct work_struct *unused) |
| 270 | { | 270 | { |
| 271 | long wait,len2,pos; | 271 | long wait,len2,pos; |
| 272 | struct NCR_ESP *esp; | 272 | struct NCR_ESP *esp; |
