s390/css: start the subchannel evaluation earlier
authorSebastian Ott <sebott@linux.ibm.com>
Tue, 12 Jun 2018 11:56:21 +0000 (13:56 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 17 Jul 2018 05:27:53 +0000 (07:27 +0200)
The css bus code uses 2 initcalls: channel_subsystem_init to
initialize internal data and channel_subsystem_init_sync to
start scanning for devices and wait for it to finish.

The start scanning for devices part is moved to the first
initcall such that more work happens in parallel.

Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/css.c

index 830a83e..e608e8c 100644 (file)
@@ -1080,6 +1080,11 @@ static int __init channel_subsystem_init(void)
        if (ret)
                goto out_wq;
 
+       /* Register subchannels which are already in use. */
+       cio_register_early_subchannels();
+       /* Start initial subchannel evaluation. */
+       css_schedule_eval_all();
+
        return ret;
 out_wq:
        destroy_workqueue(cio_work_q);
@@ -1119,10 +1124,6 @@ int css_complete_work(void)
  */
 static int __init channel_subsystem_init_sync(void)
 {
-       /* Register subchannels which are already in use. */
-       cio_register_early_subchannels();
-       /* Start initial subchannel evaluation. */
-       css_schedule_eval_all();
        css_complete_work();
        return 0;
 }