WorkQueue: Fix up arch-specific work items where possible

Fix up arch-specific work items where possible to use the new work_struct and
delayed_work structs.

Three places that enqueue bits of their stack and then return have been marked
with #error as this is not permitted.

Signed-Off-By: David Howells <[email protected]>
This commit is contained in:
David Howells 2006-12-05 19:36:26 +00:00 • committed by David Howells
commit 6d5aefb8ea
34 changed files with 154 additions and 121 deletions

View file

@ -638,7 +638,7 @@ int chan_out_fd(struct list_head *chans)
return -1;
}
void chan_interrupt(struct list_head *chans, struct work_struct *task,
void chan_interrupt(struct list_head *chans, struct delayed_work *task,
struct tty_struct *tty, int irq)
{
struct list_head *ele, *next;

View file

@ -56,7 +56,7 @@ static struct notifier_block reboot_notifier = {
static LIST_HEAD(mc_requests);
static void mc_work_proc(void *unused)
static void mc_work_proc(struct work_struct *unused)
{
struct mconsole_entry *req;
unsigned long flags;
@ -72,7 +72,7 @@ static void mc_work_proc(void *unused)
}
}
static DECLARE_WORK(mconsole_work, mc_work_proc, NULL);
static DECLARE_WORK(mconsole_work, mc_work_proc);
static irqreturn_t mconsole_interrupt(int irq, void *dev_id)
{

View file

@ -99,6 +99,7 @@ irqreturn_t uml_net_interrupt(int irq, void *dev_id)
* same device, since it tests for (dev->flags & IFF_UP). So
* there's no harm in delaying the device shutdown. */
schedule_work(&close_work);
#error this is not permitted - close_work will go out of scope
goto out;
}
reactivate_fd(lp->fd, UM_ETH_IRQ);

View file

@ -132,7 +132,7 @@ static int port_accept(struct port_list *port)
DECLARE_MUTEX(ports_sem);
struct list_head ports = LIST_HEAD_INIT(ports);
void port_work_proc(void *unused)
void port_work_proc(struct work_struct *unused)
{
struct port_list *port;
struct list_head *ele;
@ -150,7 +150,7 @@ void port_work_proc(void *unused)
local_irq_restore(flags);
}
DECLARE_WORK(port_work, port_work_proc, NULL);
DECLARE_WORK(port_work, port_work_proc);
static irqreturn_t port_interrupt(int irq, void *data)
{