提交 201aed67 编写于 作者: B Brian King 提交者: James Bottomley

[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: NBrian King <brking@linux.vnet.ibm.com>
Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
上级 4d4dd706
...@@ -1849,8 +1849,7 @@ static void ibmvscsi_do_work(struct ibmvscsi_host_data *hostdata) ...@@ -1849,8 +1849,7 @@ static void ibmvscsi_do_work(struct ibmvscsi_host_data *hostdata)
rc = ibmvscsi_ops->reset_crq_queue(&hostdata->queue, hostdata); rc = ibmvscsi_ops->reset_crq_queue(&hostdata->queue, hostdata);
if (!rc) if (!rc)
rc = ibmvscsi_ops->send_crq(hostdata, 0xC001000000000000LL, 0); rc = ibmvscsi_ops->send_crq(hostdata, 0xC001000000000000LL, 0);
if (!rc) vio_enable_interrupts(to_vio_dev(hostdata->dev));
rc = vio_enable_interrupts(to_vio_dev(hostdata->dev));
} else if (hostdata->reenable_crq) { } else if (hostdata->reenable_crq) {
smp_rmb(); smp_rmb();
action = "enable"; action = "enable";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册