We do not need to maintain a list of ports when we are using the
device-model. The base layer is going to maintain the list for us and
we can get the list of ports just using bus_for_each_dev().
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Link: https://lore.kernel.org/r/20191016144540.18810-2-sudipm.mukherjee@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 int __parport_register_driver(struct parport_driver *drv, struct module *owner,
                              const char *mod_name)
 {
-       if (list_empty(&portlist))
-               get_lowlevel_driver();
-
        if (drv->devmodel) {
                /* using device model */
                int ret;
 
                drv->devmodel = false;
 
+               if (list_empty(&portlist))
+                       get_lowlevel_driver();
                mutex_lock(®istration_lock);
                list_for_each_entry(port, &portlist, list)
                        drv->attach(port);