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 <dhowells@redhat.com>
这个提交包含在:
@@ -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;
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
{
|
||||
|
在新工单中引用
屏蔽一个用户