Skip to content
  • Jon Paul Maloy's avatar
    tipc: eliminate risk of double link_up events · e7142c34
    Jon Paul Maloy authored
    
    
    When an ACTIVATE or data packet is received in a link in state
    ESTABLISHING, the link does not immediately change state to
    ESTABLISHED, but does instead return a LINK_UP event to the caller,
    which will execute the state change in a different lock context.
    
    This non-atomic approach incurs a low risk that we may have two
    LINK_UP events pending simultaneously for the same link, resulting
    in the final part of the setup procedure being executed twice. The
    only potential harm caused by this it that we may see two LINK_UP
    events issued to subsribers of the topology server, something that
    may cause confusion.
    
    This commit eliminates this risk by checking if the link is already
    up before proceeding with the second half of the setup.
    
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e7142c34