staging: most: fix race condition in AIM networking

If the network device is being opened right after it has been registered
via function register_netdev(), the device state is not yet consistent in
the context of function ndo_open(). This patch cares about having the
initialization done right, before the networking device is registered.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
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 2015-09-28 17:18:32 +02:00 committed by Greg Kroah-Hartman
parent bf358040c4
commit 25ef42f308

View file

@ -356,10 +356,13 @@ static int aim_probe_channel(struct most_interface *iface, int channel_idx,
}
nd->dev = dev;
ch->ch_id = channel_idx;
ch->linked = true;
dev->ml_priv = nd;
if (register_netdev(dev)) {
pr_err("registering net device failed\n");
ch->linked = false;
free_netdev(dev);
return -EINVAL;
}