From: Haiyang Zhang <[email protected]>

If HW Channel (HWC) is not responding, reduce the waiting time, so further
steps will fail quickly.
This will prevent getting stuck for a long time (30 minutes or more), for
example, during unloading while HWC is not responding.

Signed-off-by: Haiyang Zhang <[email protected]>
---
 drivers/net/ethernet/microsoft/mana/hw_channel.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c 
b/drivers/net/ethernet/microsoft/mana/hw_channel.c
index ef072e24c46d..ada6c78a2bef 100644
--- a/drivers/net/ethernet/microsoft/mana/hw_channel.c
+++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c
@@ -881,7 +881,12 @@ int mana_hwc_send_request(struct hw_channel_context *hwc, 
u32 req_len,
        if (!wait_for_completion_timeout(&ctx->comp_event,
                                         (msecs_to_jiffies(hwc->hwc_timeout)))) 
{
                if (hwc->hwc_timeout != 0)
-                       dev_err(hwc->dev, "HWC: Request timed out!\n");
+                       dev_err(hwc->dev, "HWC: Request timed out: %u ms\n",
+                               hwc->hwc_timeout);
+
+               /* Reduce further waiting if HWC no response */
+               if (hwc->hwc_timeout > 1)
+                       hwc->hwc_timeout = 1;
 
                err = -ETIMEDOUT;
                goto out;
-- 
2.34.1


Reply via email to