Skip to content
  • Roland Dreier's avatar
    [IB] umad: avoid potential deadlock when unregistering MAD agents · 2f76e829
    Roland Dreier authored
    
    
    ib_unregister_mad_agent() completes all pending MAD sends and waits
    for the agent's send_handler routine to return.  umad's send_handler()
    calls queue_packet(), which does down_read() on the port mutex to look
    up the agent ID.  This means that the port mutex cannot be held for
    writing while calling ib_unregister_mad_agent(), or else it will
    deadlock.  This patch fixes all the calls to ib_unregister_mad_agent()
    in the umad module to avoid this deadlock.
    
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    2f76e829