• Jiri Pirko's avatar
    team: move add to port list before port enablement · 72df935d
    Jiri Pirko authored
    team_port_enable() adds port to port_hashlist. Reader sees port
    in team_get_port_by_index_rcu() and returns it, but
    team_get_first_port_txable_rcu() tries to go through port_list, where the
    port is not inserted yet -> NULL pointer dereference.
    Fix this by reordering port_list and port_hashlist insertion.
    Panic is easily triggeable when txing packets and adding/removing port
    in a loop.
    
    Introduced by commit 3d249d4c "net: introduce ethernet teaming device"
    Signed-off-by: default avatarJiri Pirko <jiri@resnulli.us>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    72df935d
team.c 63.7 KB