From: Christian Gromm Date: Mon, 28 Sep 2015 15:18:32 +0000 (+0200) Subject: staging: most: fix race condition in AIM networking X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=25ef42f3084df7b7511f1a9f72678a95d444f579;p=openwrt%2Fstaging%2Fblogic.git 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 Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/most/aim-network/networking.c b/drivers/staging/most/aim-network/networking.c index dd368721b727..761c4cbff3e1 100644 --- a/drivers/staging/most/aim-network/networking.c +++ b/drivers/staging/most/aim-network/networking.c @@ -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; }