提交 28cde751 编写于 作者: N Nathan Fontenot 提交者: David S. Miller

ibmvnic: Reset the CRQ queue during driver reset

When a driver reset operation occurs there is not a need to release
the CRQ resources and re-allocate them. Instead a reset of the CRQ
will suffice.
Signed-off-by: NNathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 152ce47d
...@@ -1260,7 +1260,6 @@ static int do_reset(struct ibmvnic_adapter *adapter, ...@@ -1260,7 +1260,6 @@ static int do_reset(struct ibmvnic_adapter *adapter,
release_resources(adapter); release_resources(adapter);
release_sub_crqs(adapter); release_sub_crqs(adapter);
release_crq_queue(adapter);
rc = ibmvnic_init(adapter); rc = ibmvnic_init(adapter);
if (rc) if (rc)
...@@ -3517,7 +3516,14 @@ static int ibmvnic_init(struct ibmvnic_adapter *adapter) ...@@ -3517,7 +3516,14 @@ static int ibmvnic_init(struct ibmvnic_adapter *adapter)
unsigned long timeout = msecs_to_jiffies(30000); unsigned long timeout = msecs_to_jiffies(30000);
int rc; int rc;
rc = init_crq_queue(adapter); if (adapter->resetting) {
rc = ibmvnic_reset_crq(adapter);
if (!rc)
rc = vio_enable_interrupts(adapter->vdev);
} else {
rc = init_crq_queue(adapter);
}
if (rc) { if (rc) {
dev_err(dev, "Couldn't initialize crq. rc=%d\n", rc); dev_err(dev, "Couldn't initialize crq. rc=%d\n", rc);
return rc; return rc;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册