bnx2: Free IRQ before freeing status block memory
authorMichael Chan <mchan@broadcom.com>
Fri, 31 Dec 2010 19:03:14 +0000 (11:03 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 31 Dec 2010 19:03:14 +0000 (11:03 -0800)
commita29ba9d2d84889686a3af1c5a6023f28be75ccba
tree46506c127a2d37ef00dca9752cc93e15e2f7b727
parent0438a1b24437cf007ed0e0f5f6b414d5b49468dc
bnx2: Free IRQ before freeing status block memory

When changing ring size, we free all memory including status block
memory.  If we're in INTA mode and sharing IRQ, the IRQ handler can
be called and it will reference the NULL status block pointer.

Because of the lockless design of the IRQ handler, there is no simple
way to synchronize and prevent this.  So we avoid this problem by
freeing the IRQ handler before freeing the status block memory.

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