]> git.baikalelectronics.ru Git - kernel.git/commit
cnic: Don't take rcu_read_lock in cnic_rcv_netevent()
authorMichael Chan <mchan@broadcom.com>
Tue, 3 Jun 2014 06:08:46 +0000 (23:08 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 3 Jun 2014 06:16:41 +0000 (23:16 -0700)
commit80b1d2d3c857d34a3c6dbb9792bcfdf67dd61688
tree6645ecf039b795d6de8579e4c8ab4da22cedb181
parent81d3ba2e04c906214d41d7673fb594200e50e3ed
cnic: Don't take rcu_read_lock in cnic_rcv_netevent()

Because the called function, such as bnx2fc_indicate_netevent(), can sleep,
we cannot take rcu_lock().  To prevent the rcu protected ulp_ops from going
away, we use the cnic_lock mutex and set the ULP_F_CALL_PENDING flag.
The code already waits for ULP_F_CALL_PENDING flag to clear in
cnic_unregister_device().

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/cnic.c