bnx2: Fix netpoll crash.
commit54142c959f88de9f41e637f39306085b8d7defcc
authorBenjamin Li <benli@broadcom.com>
Tue, 23 Mar 2010 13:13:11 +0000 (23 13:13 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 21 Mar 2011 19:45:40 +0000 (21 12:45 -0700)
tree6d31d737341fe348ae691613c754ae90da4a1045
parentbd33d194a874963afdc3261fa1158b720e90633c
bnx2: Fix netpoll crash.

commit 4327ba435a56ada13eedf3eb332e583c7a0586a9 upstream.

The bnx2 driver calls netif_napi_add() for all the NAPI structs during
->probe() time but not all of them will be used if we're not in MSI-X
mode.  This creates a problem for netpoll since it will poll all the
NAPI structs in the dev_list whether or not they are scheduled, resulting
in a crash when we access structure fields not initialized for that vector.

We fix it by moving the netif_napi_add() call to ->open() after the number
of IRQ vectors has been determined.

Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/bnx2.c