All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] ixgbevf: fix atomicity off IXGBEVF_FLAG_QUEUE_RESET_REQUESTED flag
@ 2015-12-02 20:25 John Greene
  2015-12-02 21:13 ` Alexander Duyck
  2015-12-02 21:32 ` Alexander Duyck
  0 siblings, 2 replies; 3+ messages in thread
From: John Greene @ 2015-12-02 20:25 UTC (permalink / raw)
  To: intel-wired-lan

When doing a 'reboot' of a VM, the "ip link set ethX down" of an interface
using the ixgbevf.ko driver may hang indefinitely blocking the complete
boot down of the OS.    The "ip" command is executed from an rc6.d script.
The driver in performing the ioctl() was stuck in ixgbevf_down() looping
at this line forever:

while (adapter->flags & IXGBE_FLAG_IN_WATCHDOG_TASK)
                msleep(1);

While this issue has been fixed already by other upstream patches, it's noted
that IXGBEVF_FLAG_QUEUE_RESET_REQUESTED flag should likewise be changed.

Signed-off-by: Scott Otto <otts62@yahoo.com>
Signed-off-by: John Greene <jogreene@redhat.com>
---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 592ff23..826b04f 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -1983,7 +1983,7 @@ static int ixgbevf_configure_dcb(struct ixgbevf_adapter *adapter)
 		hw->mbx.timeout = 0;
 
 		/* wait for watchdog to come around and bail us out */
-		adapter->flags |= IXGBEVF_FLAG_QUEUE_RESET_REQUESTED;
+		set_bit(IXGBEVF_FLAG_QUEUE_RESET_REQUESTED, &adapter->flags);
 	}
 
 	return 0;
@@ -3230,10 +3230,10 @@ static void ixgbevf_queue_reset_subtask(struct ixgbevf_adapter *adapter)
 {
 	struct net_device *dev = adapter->netdev;
 
-	if (!(adapter->flags & IXGBEVF_FLAG_QUEUE_RESET_REQUESTED))
+	if (!(test_bit(IXGBEVF_FLAG_QUEUE_RESET_REQUESTED, &adapter->flags)))
 		return;
 
-	adapter->flags &= ~IXGBEVF_FLAG_QUEUE_RESET_REQUESTED;
+	clear_bit(IXGBEVF_FLAG_QUEUE_RESET_REQUESTED, &adapter->flags);
 
 	/* if interface is down do nothing */
 	if (test_bit(__IXGBEVF_DOWN, &adapter->state) ||
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-12-02 21:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-02 20:25 [Intel-wired-lan] ixgbevf: fix atomicity off IXGBEVF_FLAG_QUEUE_RESET_REQUESTED flag John Greene
2015-12-02 21:13 ` Alexander Duyck
2015-12-02 21:32 ` Alexander Duyck

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.