All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Romer <benjamin.romer@unisys.com>
To: gregkh@linuxfoundation.org
Cc: Jes.Sorensen@redhat.com, driverdev-devel@linuxdriverproject.org,
	sparmaintainer@unisys.com, Tim Sell <Timothy.Sell@unisys.com>,
	Benjamin Romer <benjamin.romer@unisys.com>
Subject: [PATCH 7/7] staging: unisys: visornic - prevent NETDEV WATCHDOG timeouts after IO recovery
Date: Fri, 24 Jul 2015 12:00:25 -0400	[thread overview]
Message-ID: <1437753625-28701-8-git-send-email-benjamin.romer@unisys.com> (raw)
In-Reply-To: <1437753625-28701-1-git-send-email-benjamin.romer@unisys.com>

From: Tim Sell <Timothy.Sell@unisys.com>

After IO partition recovery, it was possible to get into a situation where
a visornic device would repeatedly report:

    NETDEV WATCHDOG: eth0 (): transmit queue 0 timed out

The actual problem would affect any visornic device that was rapidly
transmitting at the same time the IO partition was being recovered. Once
you hit the problem, the only way to resume use of the nic would be to
reboot the Linux client partition.

The problem was caused by chstat.sent_xmit and chstat.got_xmit_done NOT
getting cleared during IO partition recovery. This is necessary because
outstanding xmits would essentially be "abandoned" during such recovery.
These fields are now cleared in virtnic_serverdown_complete().

Signed-off-by: Tim Sell <Timothy.Sell@unisys.com>
Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
---
 drivers/staging/unisys/visornic/visornic_main.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c
index bd58e15..4b5fc07 100644
--- a/drivers/staging/unisys/visornic/visornic_main.c
+++ b/drivers/staging/unisys/visornic/visornic_main.c
@@ -380,6 +380,8 @@ visornic_serverdown_complete(struct visornic_devdata *devdata)
 	rtnl_unlock();
 
 	atomic_set(&devdata->num_rcvbuf_in_iovm, 0);
+	devdata->chstat.sent_xmit = 0;
+	devdata->chstat.got_xmit_done = 0;
 
 	if (devdata->server_down_complete_func)
 		(*devdata->server_down_complete_func)(devdata->dev, 0);
-- 
2.1.4

      parent reply	other threads:[~2015-07-24 16:00 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-24 16:00 [PATCH 0/7] staging: unisys: visornic testing fix series Benjamin Romer
2015-07-24 16:00 ` [PATCH 1/7] staging: unisys: visornic: fix serialization mechanism around usage atomic Benjamin Romer
2015-07-24 20:35   ` Greg KH
2015-07-24 23:11     ` Neil Horman
2015-07-24 16:00 ` [PATCH 2/7] staging: unisys: add simple error-check into visornic receive path Benjamin Romer
2015-07-24 20:36   ` Greg KH
2015-07-24 16:00 ` [PATCH 3/7] staging: unisys: Process more than one response per check Benjamin Romer
2015-07-24 16:00 ` [PATCH 4/7] staging: unisys: visornic - ensure proper net locking in tx reset logic Benjamin Romer
2015-07-24 16:00 ` [PATCH 5/7] staging: unisys: visornic - check visorchannel_signalinsert/remove failures Benjamin Romer
2015-07-24 16:00 ` [PATCH 6/7] staging: unisys: visornic - consolidate+simplify xmit watermark checks Benjamin Romer
2015-07-24 20:43   ` Greg KH
2015-07-27  8:17   ` Dan Carpenter
2015-07-24 16:00 ` Benjamin Romer [this message]

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=1437753625-28701-8-git-send-email-benjamin.romer@unisys.com \
    --to=benjamin.romer@unisys.com \
    --cc=Jes.Sorensen@redhat.com \
    --cc=Timothy.Sell@unisys.com \
    --cc=driverdev-devel@linuxdriverproject.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=sparmaintainer@unisys.com \
    /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: link
Be 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.