diff options
author | Michael Chan <mchan@broadcom.com> | 2010-06-01 15:05:36 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-02 02:26:40 -0700 |
commit | f048fa9c8686119c3858a463cab6121dced7c0bf (patch) | |
tree | c68dd0cc095559c348c8916b6e3372b4e0610e9a /drivers/net/enic | |
parent | fafeeb6c80e3842c6dc19d05de09a23f23eef0d8 (diff) | |
download | blackbird-op-linux-f048fa9c8686119c3858a463cab6121dced7c0bf.tar.gz blackbird-op-linux-f048fa9c8686119c3858a463cab6121dced7c0bf.zip |
bnx2: Fix hang during rmmod bnx2.
The regression is caused by:
commit 4327ba435a56ada13eedf3eb332e583c7a0586a9
bnx2: Fix netpoll crash.
If ->open() and ->close() are called multiple times, the same napi structs
will be added to dev->napi_list multiple times, corrupting the dev->napi_list.
This causes free_netdev() to hang during rmmod.
We fix this by calling netif_napi_del() during ->close().
Also, bnx2_init_napi() must not be in the __devinit section since it is
called by ->open().
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/enic')
0 files changed, 0 insertions, 0 deletions