mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 23:29:46 +00:00
[SCSI] ibmvscsi: Improve CRQ reset reliability
This patch fixes an issue seen where an event occurs which causes the ibmvscsi driver to reset its CRQ. Upon re-registering its CRQ, it receives H_CLOSED, indicating the Virtual I/O Server is not yet ready to receive commands. This resulted in the ibmvscsi driver essentially offlining the adapter and not recovering. The fix is to re-enable our interrupt so that when the Virtual I/O server is ready and sends a CRQ init, we will be able to receive it and resume initialization of the VSCSI adapter. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
4d4dd70655
commit
201aed6784
@ -1849,8 +1849,7 @@ static void ibmvscsi_do_work(struct ibmvscsi_host_data *hostdata)
|
||||
rc = ibmvscsi_ops->reset_crq_queue(&hostdata->queue, hostdata);
|
||||
if (!rc)
|
||||
rc = ibmvscsi_ops->send_crq(hostdata, 0xC001000000000000LL, 0);
|
||||
if (!rc)
|
||||
rc = vio_enable_interrupts(to_vio_dev(hostdata->dev));
|
||||
vio_enable_interrupts(to_vio_dev(hostdata->dev));
|
||||
} else if (hostdata->reenable_crq) {
|
||||
smp_rmb();
|
||||
action = "enable";
|
||||
|
Loading…
x
Reference in New Issue
Block a user