[SCSI] lpfc: Fixes in mbox_timeout_handler
authorJames.Smart@Emulex.Com <James.Smart@Emulex.Com>
Sat, 25 Jun 2005 14:34:08 +0000 (10:34 -0400)
committerJames Bottomley <jejb@mulgrave.(none)>
Sat, 2 Jul 2005 22:05:32 +0000 (17:05 -0500)
commitdb468d108abc0bb348bcfc54b8e06145922fb6b1
tree20fc4fd71fe9e194bb36c5083e3ea1cb3fab81a5
parent6e8215e48865bda2e07c1c0633952e35fa3b170c
[SCSI] lpfc: Fixes in mbox_timeout_handler

Analysis:

Timeout of READ_SPARM64 causes call to lpfc_mbox_timeout_handler which
reads psli->mbox_active to determine the timeout mbox.  Timeout
handler then NULL's psli->mbox_active and calls
lpfc_mbx_cmpl_read_sparam(), which on timeout condition, calls
link_down().  link_down() now calls disc_done() which calls
mbox_timeout_hander() again since WORKER_MBOX_TMO is still set, which
goes back to read psli->mbox_active which is already NULL'ed.

Remove redundant if statement in lpfc_mbox_timeout_handler.  pmbox is
assigned psli->mbox_active so there is no need to check if it actually
equals psli->mbox_active.

Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/lpfc/lpfc_sli.c