RDMA/ocrdma: Don't sleep in atomic notifier handler
authorSasha Levin <levinsasha928@gmail.com>
Sat, 28 Apr 2012 05:40:01 +0000 (07:40 +0200)
committerRoland Dreier <roland@purestorage.com>
Tue, 8 May 2012 18:17:48 +0000 (11:17 -0700)
Events sent to ocrdma_inet6addr_event() are sent from an atomic context,
therefore we can't try to lock a mutex within the notifier callback.

We could just switch the mutex to a spinlock since all it does it
protect a list, but I've gone ahead and switched the list to use RCU
instead.  I couldn't fully test it since I don't have IB hardware, so
if it doesn't fully work for some reason let me know and I'll switch
it back to using a spinlock.

Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
[ Fixed locking in ocrdma_add().  - Roland ]

Signed-off-by: Roland Dreier <roland@purestorage.com>

No differences found