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: Ying Xue <ying.xue@windriver.com> Reviewed-by: Jon Maloy <jon.maloy@ericsson.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Tested-by: Erik Hugne <erik.hugne@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7216cd949c
commit
f1c8d8cb82
|
@ -471,6 +471,7 @@ void tipc_disable_l2_media(struct tipc_bearer *b)
|
|||
dev = (struct net_device *)rtnl_dereference(b->media_ptr);
|
||||
RCU_INIT_POINTER(b->media_ptr, NULL);
|
||||
RCU_INIT_POINTER(dev->tipc_ptr, NULL);
|
||||
synchronize_net();
|
||||
dev_put(dev);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue