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.mukher...@gmail.com>
---
 drivers/parport/share.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/parport/share.c b/drivers/parport/share.c
index 7b4ee33c1935..96538b7975e5 100644
--- a/drivers/parport/share.c
+++ b/drivers/parport/share.c
@@ -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);
-- 
2.11.0

Reply via email to