X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=arch%2Fs390%2Fkernel%2Fsmp.c;h=726de4f4df0189240bea16888daeb65744f35bed;hb=10de638d8ea57ebab4231ea077bed01d9bade775;hp=27c710178033b0ce6633edf0723ccca683ca55e3;hpb=2a405f6bb3a5b2baaa74dfc5aaa0e1b99145bd1b;p=linux-block.git diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 27c710178033..726de4f4df01 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c @@ -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)