Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1c8d8cb authored by Ying Xue's avatar Ying Xue Committed by David S. Miller
Browse files

tipc: make media_ptr pointed netdevice valid



The 'media_ptr' pointer in bearer structure which points to network
device, is protected by RCU. So, before netdevice is released,
synchronize_net() should be involved to prevent no any user of
the netdevice on read side from accessing it after it is freed.

Signed-off-by: default avatarYing Xue <ying.xue@windriver.com>
Reviewed-by: default avatarJon Maloy <jon.maloy@ericsson.com>
Reviewed-by: default avatarErik Hugne <erik.hugne@ericsson.com>
Tested-by: default avatarErik Hugne <erik.hugne@ericsson.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7216cd94
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -471,6 +471,7 @@ void tipc_disable_l2_media(struct tipc_bearer *b)
	dev = (struct net_device *)rtnl_dereference(b->media_ptr);
	dev = (struct net_device *)rtnl_dereference(b->media_ptr);
	RCU_INIT_POINTER(b->media_ptr, NULL);
	RCU_INIT_POINTER(b->media_ptr, NULL);
	RCU_INIT_POINTER(dev->tipc_ptr, NULL);
	RCU_INIT_POINTER(dev->tipc_ptr, NULL);
	synchronize_net();
	dev_put(dev);
	dev_put(dev);
}
}