Commit 4927b3f7 authored by Al Viro's avatar Al Viro Committed by Linus Torvalds

[PATCH] More work_struct induced breakage (s390)

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f9e9dcb3
...@@ -54,7 +54,7 @@ static void dasd_flush_request_queue(struct dasd_device *); ...@@ -54,7 +54,7 @@ static void dasd_flush_request_queue(struct dasd_device *);
static void dasd_int_handler(struct ccw_device *, unsigned long, struct irb *); static void dasd_int_handler(struct ccw_device *, unsigned long, struct irb *);
static int dasd_flush_ccw_queue(struct dasd_device *, int); static int dasd_flush_ccw_queue(struct dasd_device *, int);
static void dasd_tasklet(struct dasd_device *); static void dasd_tasklet(struct dasd_device *);
static void do_kick_device(void *data); static void do_kick_device(struct work_struct *);
/* /*
* SECTION: Operations on the device structure. * SECTION: Operations on the device structure.
...@@ -100,7 +100,7 @@ dasd_alloc_device(void) ...@@ -100,7 +100,7 @@ dasd_alloc_device(void)
(unsigned long) device); (unsigned long) device);
INIT_LIST_HEAD(&device->ccw_queue); INIT_LIST_HEAD(&device->ccw_queue);
init_timer(&device->timer); init_timer(&device->timer);
INIT_WORK(&device->kick_work, do_kick_device, device); INIT_WORK(&device->kick_work, do_kick_device);
device->state = DASD_STATE_NEW; device->state = DASD_STATE_NEW;
device->target = DASD_STATE_NEW; device->target = DASD_STATE_NEW;
...@@ -407,11 +407,9 @@ dasd_change_state(struct dasd_device *device) ...@@ -407,11 +407,9 @@ dasd_change_state(struct dasd_device *device)
* event daemon. * event daemon.
*/ */
static void static void
do_kick_device(void *data) do_kick_device(struct work_struct *work)
{ {
struct dasd_device *device; struct dasd_device *device = container_of(work, struct dasd_device, kick_work);
device = (struct dasd_device *) data;
dasd_change_state(device); dasd_change_state(device);
dasd_schedule_bh(device); dasd_schedule_bh(device);
dasd_put_device(device); dasd_put_device(device);
......
...@@ -334,7 +334,7 @@ static LIST_HEAD(slow_subchannels_head); ...@@ -334,7 +334,7 @@ static LIST_HEAD(slow_subchannels_head);
static DEFINE_SPINLOCK(slow_subchannel_lock); static DEFINE_SPINLOCK(slow_subchannel_lock);
static void static void
css_trigger_slow_path(void) css_trigger_slow_path(struct work_struct *unused)
{ {
CIO_TRACE_EVENT(4, "slowpath"); CIO_TRACE_EVENT(4, "slowpath");
...@@ -359,8 +359,7 @@ css_trigger_slow_path(void) ...@@ -359,8 +359,7 @@ css_trigger_slow_path(void)
spin_unlock_irq(&slow_subchannel_lock); spin_unlock_irq(&slow_subchannel_lock);
} }
typedef void (*workfunc)(void *); DECLARE_WORK(slow_path_work, css_trigger_slow_path);
DECLARE_WORK(slow_path_work, (workfunc)css_trigger_slow_path, NULL);
struct workqueue_struct *slow_path_wq; struct workqueue_struct *slow_path_wq;
/* Reprobe subchannel if unregistered. */ /* Reprobe subchannel if unregistered. */
...@@ -397,7 +396,7 @@ static int reprobe_subchannel(struct subchannel_id schid, void *data) ...@@ -397,7 +396,7 @@ static int reprobe_subchannel(struct subchannel_id schid, void *data)
} }
/* Work function used to reprobe all unregistered subchannels. */ /* Work function used to reprobe all unregistered subchannels. */
static void reprobe_all(void *data) static void reprobe_all(struct work_struct *unused)
{ {
int ret; int ret;
...@@ -413,7 +412,7 @@ static void reprobe_all(void *data) ...@@ -413,7 +412,7 @@ static void reprobe_all(void *data)
need_reprobe); need_reprobe);
} }
DECLARE_WORK(css_reprobe_work, reprobe_all, NULL); DECLARE_WORK(css_reprobe_work, reprobe_all);
/* Schedule reprobing of all unregistered subchannels. */ /* Schedule reprobing of all unregistered subchannels. */
void css_schedule_reprobe(void) void css_schedule_reprobe(void)
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
#include "ap_bus.h" #include "ap_bus.h"
/* Some prototypes. */ /* Some prototypes. */
static void ap_scan_bus(void *); static void ap_scan_bus(struct work_struct *);
static void ap_poll_all(unsigned long); static void ap_poll_all(unsigned long);
static void ap_poll_timeout(unsigned long); static void ap_poll_timeout(unsigned long);
static int ap_poll_thread_start(void); static int ap_poll_thread_start(void);
...@@ -71,7 +71,7 @@ static struct device *ap_root_device = NULL; ...@@ -71,7 +71,7 @@ static struct device *ap_root_device = NULL;
static struct workqueue_struct *ap_work_queue; static struct workqueue_struct *ap_work_queue;
static struct timer_list ap_config_timer; static struct timer_list ap_config_timer;
static int ap_config_time = AP_CONFIG_TIME; static int ap_config_time = AP_CONFIG_TIME;
static DECLARE_WORK(ap_config_work, ap_scan_bus, NULL); static DECLARE_WORK(ap_config_work, ap_scan_bus);
/** /**
* Tasklet & timer for AP request polling. * Tasklet & timer for AP request polling.
...@@ -732,7 +732,7 @@ static void ap_device_release(struct device *dev) ...@@ -732,7 +732,7 @@ static void ap_device_release(struct device *dev)
kfree(ap_dev); kfree(ap_dev);
} }
static void ap_scan_bus(void *data) static void ap_scan_bus(struct work_struct *unused)
{ {
struct ap_device *ap_dev; struct ap_device *ap_dev;
struct device *dev; struct device *dev;
......
...@@ -67,7 +67,7 @@ static char debug_buffer[255]; ...@@ -67,7 +67,7 @@ static char debug_buffer[255];
* Some prototypes. * Some prototypes.
*/ */
static void lcs_tasklet(unsigned long); static void lcs_tasklet(unsigned long);
static void lcs_start_kernel_thread(struct lcs_card *card); static void lcs_start_kernel_thread(struct work_struct *);
static void lcs_get_frames_cb(struct lcs_channel *, struct lcs_buffer *); static void lcs_get_frames_cb(struct lcs_channel *, struct lcs_buffer *);
static int lcs_send_delipm(struct lcs_card *, struct lcs_ipm_list *); static int lcs_send_delipm(struct lcs_card *, struct lcs_ipm_list *);
static int lcs_recovery(void *ptr); static int lcs_recovery(void *ptr);
...@@ -1724,8 +1724,9 @@ lcs_stopcard(struct lcs_card *card) ...@@ -1724,8 +1724,9 @@ lcs_stopcard(struct lcs_card *card)
* Kernel Thread helper functions for LGW initiated commands * Kernel Thread helper functions for LGW initiated commands
*/ */
static void static void
lcs_start_kernel_thread(struct lcs_card *card) lcs_start_kernel_thread(struct work_struct *work)
{ {
struct lcs_card *card = container_of(work, struct lcs_card, kernel_thread_starter);
LCS_DBF_TEXT(5, trace, "krnthrd"); LCS_DBF_TEXT(5, trace, "krnthrd");
if (lcs_do_start_thread(card, LCS_RECOVERY_THREAD)) if (lcs_do_start_thread(card, LCS_RECOVERY_THREAD))
kernel_thread(lcs_recovery, (void *) card, SIGCHLD); kernel_thread(lcs_recovery, (void *) card, SIGCHLD);
...@@ -2053,8 +2054,7 @@ lcs_probe_device(struct ccwgroup_device *ccwgdev) ...@@ -2053,8 +2054,7 @@ lcs_probe_device(struct ccwgroup_device *ccwgdev)
ccwgdev->cdev[0]->handler = lcs_irq; ccwgdev->cdev[0]->handler = lcs_irq;
ccwgdev->cdev[1]->handler = lcs_irq; ccwgdev->cdev[1]->handler = lcs_irq;
card->gdev = ccwgdev; card->gdev = ccwgdev;
INIT_WORK(&card->kernel_thread_starter, INIT_WORK(&card->kernel_thread_starter, lcs_start_kernel_thread);
(void *) lcs_start_kernel_thread, card);
card->thread_start_mask = 0; card->thread_start_mask = 0;
card->thread_allowed_mask = 0; card->thread_allowed_mask = 0;
card->thread_running_mask = 0; card->thread_running_mask = 0;
......
...@@ -1039,8 +1039,9 @@ qeth_do_start_thread(struct qeth_card *card, unsigned long thread) ...@@ -1039,8 +1039,9 @@ qeth_do_start_thread(struct qeth_card *card, unsigned long thread)
} }
static void static void
qeth_start_kernel_thread(struct qeth_card *card) qeth_start_kernel_thread(struct work_struct *work)
{ {
struct qeth_card *card = container_of(work, struct qeth_card, kernel_thread_starter);
QETH_DBF_TEXT(trace , 2, "strthrd"); QETH_DBF_TEXT(trace , 2, "strthrd");
if (card->read.state != CH_STATE_UP && if (card->read.state != CH_STATE_UP &&
...@@ -1103,8 +1104,7 @@ qeth_setup_card(struct qeth_card *card) ...@@ -1103,8 +1104,7 @@ qeth_setup_card(struct qeth_card *card)
card->thread_start_mask = 0; card->thread_start_mask = 0;
card->thread_allowed_mask = 0; card->thread_allowed_mask = 0;
card->thread_running_mask = 0; card->thread_running_mask = 0;
INIT_WORK(&card->kernel_thread_starter, INIT_WORK(&card->kernel_thread_starter, qeth_start_kernel_thread);
(void *)qeth_start_kernel_thread,card);
INIT_LIST_HEAD(&card->ip_list); INIT_LIST_HEAD(&card->ip_list);
card->ip_tbd_list = kmalloc(sizeof(struct list_head), GFP_KERNEL); card->ip_tbd_list = kmalloc(sizeof(struct list_head), GFP_KERNEL);
if (!card->ip_tbd_list) { if (!card->ip_tbd_list) {
......
...@@ -72,12 +72,12 @@ static void dma_advance_sg(Scsi_Cmnd *); ...@@ -72,12 +72,12 @@ static void dma_advance_sg(Scsi_Cmnd *);
static int oktagon_notify_reboot(struct notifier_block *this, unsigned long code, void *x); static int oktagon_notify_reboot(struct notifier_block *this, unsigned long code, void *x);
#ifdef USE_BOTTOM_HALF #ifdef USE_BOTTOM_HALF
static void dma_commit(void *opaque); static void dma_commit(struct work_struct *unused);
long oktag_to_io(long *paddr, long *addr, long len); long oktag_to_io(long *paddr, long *addr, long len);
long oktag_from_io(long *addr, long *paddr, long len); long oktag_from_io(long *addr, long *paddr, long len);
static DECLARE_WORK(tq_fake_dma, dma_commit, NULL); static DECLARE_WORK(tq_fake_dma, dma_commit);
#define DMA_MAXTRANSFER 0x8000 #define DMA_MAXTRANSFER 0x8000
...@@ -266,7 +266,7 @@ oktagon_notify_reboot(struct notifier_block *this, unsigned long code, void *x) ...@@ -266,7 +266,7 @@ oktagon_notify_reboot(struct notifier_block *this, unsigned long code, void *x)
*/ */
static void dma_commit(void *opaque) static void dma_commit(struct work_struct *unused)
{ {
long wait,len2,pos; long wait,len2,pos;
struct NCR_ESP *esp; struct NCR_ESP *esp;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment