From f0b4a22a48481824e124f633bbe5d3e884fc8e36 Mon Sep 17 00:00:00 2001 From: Christian Gromm Date: Mon, 13 Aug 2018 15:02:28 +0200 Subject: [PATCH] staging: most: register channel device after init of struct members 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 Signed-off-by: Greg Kroah-Hartman --- 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 f4c464625a67..b59e4711b62f 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.30.2