]> git.baikalelectronics.ru Git - kernel.git/commit
cnic: Fix locking in init/exit calls.
authorMichael Chan <mchan@broadcom.com>
Fri, 14 Aug 2009 15:49:47 +0000 (15:49 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 16 Aug 2009 01:50:47 +0000 (18:50 -0700)
commit44d341159afcb98d61dd8db2562e02c7ce1b2d68
treefd7f72c1b92ddde327fb72235a256539ac193b8c
parentd7c0bcff80d4a378389dac06f907e2b1d01e7620
cnic: Fix locking in init/exit calls.

The slow path ulp_init and ulp_exit calls to the bnx2i driver
are sleepable calls and therefore should not be protected using
rcu_read_lock.  Fix it by using mutex and refcount during these
calls.  cnic_unregister_driver() will now wait for the refcount
to go to zero before completing the call.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/cnic.c
drivers/net/cnic_if.h