This patch moves the call to device_register to the end of the channel
initialization section that the devcie belongs to. It is needed to
avoid NULL pointer dereferences once the device is registered with
sysfs.

Signed-off-by: Christian Gromm <christian.gr...@microchip.com>
---
 drivers/staging/most/core.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/most/core.c b/drivers/staging/most/core.c
index f4c4646..b59e471 100644
--- a/drivers/staging/most/core.c
+++ b/drivers/staging/most/core.c
@@ -1439,10 +1439,6 @@ int most_register_interface(struct most_interface *iface)
                c->dev.parent = &iface->dev;
                c->dev.groups = channel_attr_groups;
                c->dev.release = release_channel;
-               if (device_register(&c->dev)) {
-                       pr_err("registering c->dev failed\n");
-                       goto free_instance_nodev;
-               }
                iface->p->channel[i] = c;
                c->is_starving = 0;
                c->iface = iface;
@@ -1465,6 +1461,10 @@ int most_register_interface(struct most_interface *iface)
                mutex_init(&c->start_mutex);
                mutex_init(&c->nq_mutex);
                list_add_tail(&c->list, &iface->p->channel_list);
+               if (device_register(&c->dev)) {
+                       pr_err("registering c->dev failed\n");
+                       goto free_instance_nodev;
+               }
        }
        pr_info("registered new device mdev%d (%s)\n",
                id, iface->description);
-- 
2.7.4

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to