From: Lijun Pan <ljp@linux.ibm.com> To: netdev@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org, Lijun Pan <ljp@linux.ibm.com> Subject: [PATCH net 3/5] ibmvnic: improve ibmvnic_init and ibmvnic_reset_init Date: Fri, 14 Aug 2020 02:59:19 -0500 [thread overview] Message-ID: <20200814075921.88745-4-ljp@linux.ibm.com> (raw) In-Reply-To: <20200814075921.88745-1-ljp@linux.ibm.com> When H_SEND_CRQ command returns with H_CLOSED, it means the server's CRQ is not ready yet. Instead of resetting immediately, we wait for the server to launch passive init. ibmvnic_init() and ibmvnic_reset_init() should also return the error code from ibmvnic_send_crq_init() call. Signed-off-by: Lijun Pan <ljp@linux.ibm.com> --- drivers/net/ethernet/ibm/ibmvnic.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 50e86e65961e..e366fd42a8c4 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -3568,8 +3568,7 @@ static int ibmvnic_send_crq(struct ibmvnic_adapter *adapter, if (rc) { if (rc == H_CLOSED) { dev_warn(dev, "CRQ Queue closed\n"); - if (test_bit(0, &adapter->resetting)) - ibmvnic_reset(adapter, VNIC_RESET_FATAL); + /* do not reset, report the fail, wait for passive init from server */ } dev_warn(dev, "Send error (rc=%d)\n", rc); @@ -4985,7 +4984,12 @@ static int ibmvnic_reset_init(struct ibmvnic_adapter *adapter) reinit_completion(&adapter->init_done); adapter->init_done_rc = 0; - ibmvnic_send_crq_init(adapter); + rc = ibmvnic_send_crq_init(adapter); + if (rc) { + dev_err(dev, "%s: Send crq init failed with error %d\n", __func__, rc); + return rc; + } + if (!wait_for_completion_timeout(&adapter->init_done, timeout)) { dev_err(dev, "Initialization sequence timed out\n"); return -1; @@ -5039,7 +5043,12 @@ static int ibmvnic_init(struct ibmvnic_adapter *adapter) adapter->from_passive_init = false; adapter->init_done_rc = 0; - ibmvnic_send_crq_init(adapter); + rc = ibmvnic_send_crq_init(adapter); + if (rc) { + dev_err(dev, "%s: Send crq init failed with error %d\n", __func__, rc); + return rc; + } + if (!wait_for_completion_timeout(&adapter->init_done, timeout)) { dev_err(dev, "Initialization sequence timed out\n"); return -1; -- 2.23.0
WARNING: multiple messages have this Message-ID (diff)
From: Lijun Pan <ljp@linux.ibm.com> To: netdev@vger.kernel.org Cc: Lijun Pan <ljp@linux.ibm.com>, linuxppc-dev@lists.ozlabs.org Subject: [PATCH net 3/5] ibmvnic: improve ibmvnic_init and ibmvnic_reset_init Date: Fri, 14 Aug 2020 02:59:19 -0500 [thread overview] Message-ID: <20200814075921.88745-4-ljp@linux.ibm.com> (raw) In-Reply-To: <20200814075921.88745-1-ljp@linux.ibm.com> When H_SEND_CRQ command returns with H_CLOSED, it means the server's CRQ is not ready yet. Instead of resetting immediately, we wait for the server to launch passive init. ibmvnic_init() and ibmvnic_reset_init() should also return the error code from ibmvnic_send_crq_init() call. Signed-off-by: Lijun Pan <ljp@linux.ibm.com> --- drivers/net/ethernet/ibm/ibmvnic.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 50e86e65961e..e366fd42a8c4 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -3568,8 +3568,7 @@ static int ibmvnic_send_crq(struct ibmvnic_adapter *adapter, if (rc) { if (rc == H_CLOSED) { dev_warn(dev, "CRQ Queue closed\n"); - if (test_bit(0, &adapter->resetting)) - ibmvnic_reset(adapter, VNIC_RESET_FATAL); + /* do not reset, report the fail, wait for passive init from server */ } dev_warn(dev, "Send error (rc=%d)\n", rc); @@ -4985,7 +4984,12 @@ static int ibmvnic_reset_init(struct ibmvnic_adapter *adapter) reinit_completion(&adapter->init_done); adapter->init_done_rc = 0; - ibmvnic_send_crq_init(adapter); + rc = ibmvnic_send_crq_init(adapter); + if (rc) { + dev_err(dev, "%s: Send crq init failed with error %d\n", __func__, rc); + return rc; + } + if (!wait_for_completion_timeout(&adapter->init_done, timeout)) { dev_err(dev, "Initialization sequence timed out\n"); return -1; @@ -5039,7 +5043,12 @@ static int ibmvnic_init(struct ibmvnic_adapter *adapter) adapter->from_passive_init = false; adapter->init_done_rc = 0; - ibmvnic_send_crq_init(adapter); + rc = ibmvnic_send_crq_init(adapter); + if (rc) { + dev_err(dev, "%s: Send crq init failed with error %d\n", __func__, rc); + return rc; + } + if (!wait_for_completion_timeout(&adapter->init_done, timeout)) { dev_err(dev, "Initialization sequence timed out\n"); return -1; -- 2.23.0
next prev parent reply other threads:[~2020-08-14 7:59 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-14 7:59 [PATCH net 0/5] refactoring of ibmvnic code Lijun Pan 2020-08-14 7:59 ` Lijun Pan 2020-08-14 7:59 ` [PATCH net 1/5] ibmvnic: print caller in several error messages Lijun Pan 2020-08-14 7:59 ` Lijun Pan 2020-08-14 7:59 ` [PATCH net 2/5] ibmvnic: compare adapter->init_done_rc with more readable ibmvnic_rc_codes Lijun Pan 2020-08-14 7:59 ` Lijun Pan 2020-08-14 7:59 ` Lijun Pan [this message] 2020-08-14 7:59 ` [PATCH net 3/5] ibmvnic: improve ibmvnic_init and ibmvnic_reset_init Lijun Pan 2020-08-14 7:59 ` [PATCH net 4/5] ibmvnic: remove never executed if statement Lijun Pan 2020-08-14 7:59 ` Lijun Pan 2020-08-14 7:59 ` [PATCH net 5/5] ibmvnic: merge ibmvnic_reset_init and ibmvnic_init Lijun Pan 2020-08-14 7:59 ` Lijun Pan 2020-08-14 20:53 ` [PATCH net 0/5] refactoring of ibmvnic code David Miller
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200814075921.88745-4-ljp@linux.ibm.com \ --to=ljp@linux.ibm.com \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=netdev@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.