parport: do not check portlist when using device-model
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Wed, 16 Oct 2019 14:45:38 +0000 (15:45 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Nov 2019 11:09:48 +0000 (19:09 +0800)
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>
drivers/parport/share.c

index 7b4ee33c1935444265196a06c6e11a85f57540f1..96538b7975e5ca920a44aedb8fb2fdf303586d5d 100644 (file)
@@ -266,9 +266,6 @@ static int port_check(struct device *dev, void *dev_drv)
 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;
@@ -292,6 +289,8 @@ int __parport_register_driver(struct parport_driver *drv, struct module *owner,
 
                drv->devmodel = false;
 
+               if (list_empty(&portlist))
+                       get_lowlevel_driver();
                mutex_lock(&registration_lock);
                list_for_each_entry(port, &portlist, list)
                        drv->attach(port);