diff options
author | Roland Dreier <rolandd@cisco.com> | 2005-11-07 10:41:29 -0800 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2005-11-10 10:22:50 -0800 |
commit | 2f76e82947b977a1008cfd2868351a701c93c69c (patch) | |
tree | e6df3542a0a9dd36a8fa9939cdaeedf90f4884a5 /drivers/infiniband/ulp/ipoib/ipoib_multicast.c | |
parent | 1732b0ef3b3a02e3df328086fb3018741c5476da (diff) |
[IB] umad: avoid potential deadlock when unregistering MAD agents
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: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/ulp/ipoib/ipoib_multicast.c')
0 files changed, 0 insertions, 0 deletions