• Ying Xue's avatar
    tipc: adjust locking policy of protecting tipc_ptr pointer of net_device · ca07fb07
    Ying Xue authored
    
    
    Currently the 'tipc_ptr' pointer is protected by tipc_net_lock
    write lock on write side, and RCU read lock is applied to read
    side. In addition, there have two paths on write side where we
    may change variables pointed by the 'tipc_ptr' pointer: one is
    to configure bearer by tipc-config tool and another one is that
    bearer status is changed by notification events of its attached
    interface. But on the latter path, we improperly deem that
    accessing 'tipc_ptr' pointer happens on read side with
    rcu_read_lock() although some variables pointed by the 'tipc_ptr'
    pointer are changed possibly.
    
    Moreover, as now the both paths are guarded by RTNL lock, it's
    better to adjust the locking policy of 'tipc_ptr' pointer
    protection, allowing RTNL instead of tipc_net_lock write lock to
    protect it on write side, which will help us purge tipc_net_lock
    in the future.
    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>
    ca07fb07
bearer.c 16.2 KB