qlge: Fix bug in firmware event handler.
authorRon Mercer <ron.mercer@qlogic.com>
Sun, 7 Jun 2009 13:58:26 +0000 (13:58 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Jun 2009 07:09:45 +0000 (00:09 -0700)
commit709ac4f43d76135daa9c2e33ab90eadd16bfce15
tree0197a8c0f33079462c57ca09888dc729cb8dd49b
parentd6f58c2e63b4197cba99edd3a4c5c7f4935708fb
qlge: Fix bug in firmware event handler.

Each firmware mailbox command can have a different number of
valid data elements. When waiting for a mailbox command to
complete it the process passes it's element count and
waits for the completion.  It is possible that while waiting
an unrelated firmware async event (AE) can arrive.  When this
happens, the handler will over write the element count
with the value for the newly arrived AE. This can cause
the mailbox command to not get all of it's data.
This patch restores original mailbox count at the end
of the handler.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/qlge/qlge_mpi.c