Merge tag 's390-6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[linux-block.git] / arch / s390 / kernel / smp.c
index 27c710178033b0ce6633edf0723ccca683ca55e3..726de4f4df0189240bea16888daeb65744f35bed 100644 (file)
@@ -551,7 +551,7 @@ void arch_send_call_function_single_ipi(int cpu)
  * it goes straight through and wastes no time serializing
  * anything. Worst case is that we lose a reschedule ...
  */
-void smp_send_reschedule(int cpu)
+void arch_smp_send_reschedule(int cpu)
 {
        pcpu_ec_call(pcpu_devices + cpu, ec_schedule);
 }
@@ -1224,11 +1224,17 @@ static DEVICE_ATTR_WO(rescan);
 
 static int __init s390_smp_init(void)
 {
+       struct device *dev_root;
        int cpu, rc = 0;
 
-       rc = device_create_file(cpu_subsys.dev_root, &dev_attr_rescan);
-       if (rc)
-               return rc;
+       dev_root = bus_get_dev_root(&cpu_subsys);
+       if (dev_root) {
+               rc = device_create_file(dev_root, &dev_attr_rescan);
+               put_device(dev_root);
+               if (rc)
+                       return rc;
+       }
+
        for_each_present_cpu(cpu) {
                rc = smp_add_present_cpu(cpu);
                if (rc)