Direct access to the struct bus_type dev_root pointer is going away soon
so replace that with a call to bus_get_dev_root() instead, which is what
it is there for.
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Ilya Leoshkevich <iii@linux.ibm.com>
Cc: linux-s390@vger.kernel.org
Acked-by: Heiko Carstens <hca@linux.ibm.com>
Link: https://lore.kernel.org/r/20230313182918.1312597-19-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 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)