aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/char/sclp_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/char/sclp_config.c')
-rw-r--r--drivers/s390/char/sclp_config.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/s390/char/sclp_config.c b/drivers/s390/char/sclp_config.c
index b497afe061cc..95b909ac2b73 100644
--- a/drivers/s390/char/sclp_config.c
+++ b/drivers/s390/char/sclp_config.c
@@ -33,6 +33,7 @@ static void sclp_cpu_capability_notify(struct work_struct *work)
33 int cpu; 33 int cpu;
34 struct sys_device *sysdev; 34 struct sys_device *sysdev;
35 35
36 s390_adjust_jiffies();
36 pr_warning("cpu capability changed.\n"); 37 pr_warning("cpu capability changed.\n");
37 get_online_cpus(); 38 get_online_cpus();
38 for_each_online_cpu(cpu) { 39 for_each_online_cpu(cpu) {
@@ -70,21 +71,9 @@ static struct sclp_register sclp_conf_register =
70 71
71static int __init sclp_conf_init(void) 72static int __init sclp_conf_init(void)
72{ 73{
73 int rc;
74
75 INIT_WORK(&sclp_cpu_capability_work, sclp_cpu_capability_notify); 74 INIT_WORK(&sclp_cpu_capability_work, sclp_cpu_capability_notify);
76 INIT_WORK(&sclp_cpu_change_work, sclp_cpu_change_notify); 75 INIT_WORK(&sclp_cpu_change_work, sclp_cpu_change_notify);
77 76 return sclp_register(&sclp_conf_register);
78 rc = sclp_register(&sclp_conf_register);
79 if (rc)
80 return rc;
81
82 if (!(sclp_conf_register.sclp_send_mask & EVTYP_CONFMGMDATA_MASK)) {
83 pr_warning("no configuration management.\n");
84 sclp_unregister(&sclp_conf_register);
85 rc = -ENOSYS;
86 }
87 return rc;
88} 77}
89 78
90__initcall(sclp_conf_init); 79__initcall(sclp_conf_init);