Commit c5d4a999 authored by Cornelia Huck's avatar Cornelia Huck Committed by Martin Schwidefsky

[S390] cio: Register/unregister subchannels only from kslowcrw.

Make sure all subchannel handling is done on the slow path workqueue
so that we don't have races between an old subchannel unregistering
and a new subchannel with the same name registering.
Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 06770a6e
...@@ -483,7 +483,7 @@ static DECLARE_WORK(css_reprobe_work, reprobe_all); ...@@ -483,7 +483,7 @@ static DECLARE_WORK(css_reprobe_work, reprobe_all);
void css_schedule_reprobe(void) void css_schedule_reprobe(void)
{ {
need_reprobe = 1; need_reprobe = 1;
queue_work(ccw_device_work, &css_reprobe_work); queue_work(slow_path_wq, &css_reprobe_work);
} }
EXPORT_SYMBOL_GPL(css_schedule_reprobe); EXPORT_SYMBOL_GPL(css_schedule_reprobe);
......
...@@ -1034,7 +1034,7 @@ device_trigger_reprobe(struct subchannel *sch) ...@@ -1034,7 +1034,7 @@ device_trigger_reprobe(struct subchannel *sch)
if (sch->schib.pmcw.dev != cdev->private->dev_id.devno) { if (sch->schib.pmcw.dev != cdev->private->dev_id.devno) {
PREPARE_WORK(&cdev->private->kick_work, PREPARE_WORK(&cdev->private->kick_work,
ccw_device_move_to_orphanage); ccw_device_move_to_orphanage);
queue_work(ccw_device_work, &cdev->private->kick_work); queue_work(slow_path_wq, &cdev->private->kick_work);
} else } else
ccw_device_start_id(cdev, 0); ccw_device_start_id(cdev, 0);
} }
......
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