If a CRQ reset is triggered for some reason while in the middle of performing VSCSI adapter initialization, we don't want to call the done function for the initialization MAD commands as this will only result in two threads attempting initialization at the same time, resulting in failures.
Signed-off-by: Brian King <brk...@linux.vnet.ibm.com> --- drivers/scsi/ibmvscsi/ibmvscsi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff -puN drivers/scsi/ibmvscsi/ibmvscsi.c~ibmvscsi_purge_fix drivers/scsi/ibmvscsi/ibmvscsi.c --- linux/drivers/scsi/ibmvscsi/ibmvscsi.c~ibmvscsi_purge_fix 2014-05-23 10:36:04.000000000 -0500 +++ linux-bjking1/drivers/scsi/ibmvscsi/ibmvscsi.c 2014-05-23 10:36:33.000000000 -0500 @@ -797,7 +797,8 @@ static void purge_requests(struct ibmvsc evt->hostdata->dev); if (evt->cmnd_done) evt->cmnd_done(evt->cmnd); - } else if (evt->done) + } else if (tmp_evt->done && tmp_evt->crq.format != VIOSRP_MAD_FORMAT && + tmp_evt->iu.srp.login_req.opcode != SRP_LOGIN_REQ) evt->done(evt); free_event_struct(&evt->hostdata->pool, evt); spin_lock_irqsave(hostdata->host->host_lock, flags); _ -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html