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 <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Christian Gromm 2018-08-13 15:02:28 +02:00 committed by Greg Kroah-Hartman
parent 23c41ca617
commit f0b4a22a48

View file

@ -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);