Skip to content

Commit

Permalink
[S390] cio: Do timed recovery on workqueue.
Browse files Browse the repository at this point in the history
We can't do our recovery in softirq context, so we schedule it from
our timer function.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  • Loading branch information
Cornelia Huck authored and Martin Schwidefsky committed Feb 19, 2008
1 parent 486d0a0 commit 4c62972
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion drivers/s390/cio/device.c
Original file line number Diff line number Diff line change
Expand Up @@ -1535,7 +1535,7 @@ static int recovery_check(struct device *dev, void *data)
return 0;
}

static void recovery_func(unsigned long data)
static void recovery_work_func(struct work_struct *unused)
{
int redo = 0;

Expand All @@ -1553,6 +1553,17 @@ static void recovery_func(unsigned long data)
CIO_MSG_EVENT(2, "recovery: end\n");
}

static DECLARE_WORK(recovery_work, recovery_work_func);

static void recovery_func(unsigned long data)
{
/*
* We can't do our recovery in softirq context and it's not
* performance critical, so we schedule it.
*/
schedule_work(&recovery_work);
}

void ccw_device_schedule_recovery(void)
{
unsigned long flags;
Expand Down

0 comments on commit 4c62972

Please sign in to comment.