Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ee75597 authored by Brian King's avatar Brian King Committed by Christoph Hellwig
Browse files

ibmvscsi: Abort init sequence during error recovery



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: default avatarBrian King <brking@linux.vnet.ibm.com>
Acked-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 33a5fcee
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -797,7 +797,8 @@ static void purge_requests(struct ibmvscsi_host_data *hostdata, int error_code)
				       evt->hostdata->dev);
				       evt->hostdata->dev);
			if (evt->cmnd_done)
			if (evt->cmnd_done)
				evt->cmnd_done(evt->cmnd);
				evt->cmnd_done(evt->cmnd);
		} else if (evt->done)
		} else if (evt->done && evt->crq.format != VIOSRP_MAD_FORMAT &&
			   evt->iu.srp.login_req.opcode != SRP_LOGIN_REQ)
			evt->done(evt);
			evt->done(evt);
		free_event_struct(&evt->hostdata->pool, evt);
		free_event_struct(&evt->hostdata->pool, evt);
		spin_lock_irqsave(hostdata->host->host_lock, flags);
		spin_lock_irqsave(hostdata->host->host_lock, flags);