Commit 228241eb authored by Eliezer Tamir's avatar Eliezer Tamir Committed by David S. Miller

[BNX2X]: fix slowpath races and locking

Fixed locking between fastpath and slowpath operations.

Corrected order of traffic disabling to prevent race when going down
under traffic.

- first have the microcode drop all incoming packets
- then do the slowpath stuff
- only then reset the MAC

Got rid of in_reset_task.

Remove_one() and friends would deference a null pointer if init_one
failed.
Signed-off-by: default avatarEliezer Tamir <eliezert@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 877e9aa4
This diff is collapsed.
...@@ -545,8 +545,6 @@ struct bnx2x { ...@@ -545,8 +545,6 @@ struct bnx2x {
spinlock_t phy_lock; spinlock_t phy_lock;
struct work_struct reset_task; struct work_struct reset_task;
u16 in_reset_task;
struct work_struct sp_task; struct work_struct sp_task;
struct timer_list timer; struct timer_list timer;
...@@ -560,7 +558,6 @@ struct bnx2x { ...@@ -560,7 +558,6 @@ struct bnx2x {
#define CHIP_ID(bp) (((bp)->chip_id) & 0xfffffff0) #define CHIP_ID(bp) (((bp)->chip_id) & 0xfffffff0)
#define CHIP_NUM(bp) (((bp)->chip_id) & 0xffff0000) #define CHIP_NUM(bp) (((bp)->chip_id) & 0xffff0000)
#define CHIP_NUM_5710 0x57100000
#define CHIP_REV(bp) (((bp)->chip_id) & 0x0000f000) #define CHIP_REV(bp) (((bp)->chip_id) & 0x0000f000)
#define CHIP_REV_Ax 0x00000000 #define CHIP_REV_Ax 0x00000000
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment