svn commit: r338734 - head/sys/dev/bxe

David C Somayajulu davidcs at FreeBSD.org
Mon Sep 17 20:15:20 UTC 2018


Author: davidcs
Date: Mon Sep 17 20:15:18 2018
New Revision: 338734
URL: https://svnweb.freebsd.org/changeset/base/338734

Log:
  Fixed isses:
   State check before enqueuing transmit task in bxe_link_attn() routine.
   State check before invoking bxe_nic_unload in bxe_shutdown().
  
  Submitted by:Vaishali.Kulkarni at cavium.com
  Approved by:re(gjb)

Modified:
  head/sys/dev/bxe/bxe.c

Modified: head/sys/dev/bxe/bxe.c
==============================================================================
--- head/sys/dev/bxe/bxe.c	Mon Sep 17 19:38:43 2018	(r338733)
+++ head/sys/dev/bxe/bxe.c	Mon Sep 17 20:15:18 2018	(r338734)
@@ -7076,13 +7076,13 @@ bxe_link_attn(struct bxe_softc *sc)
 
         if (sc->state == BXE_STATE_OPEN) {
             bxe_stats_handle(sc, STATS_EVENT_LINK_UP);
+	    /* Restart tx when the link comes back. */
+	    FOR_EACH_ETH_QUEUE(sc, i) {
+		fp = &sc->fp[i];
+		taskqueue_enqueue(fp->tq, &fp->tx_task);
+	    }
         }
 
-	/* Restart tx when the link comes back. */
-        FOR_EACH_ETH_QUEUE(sc, i) {
-            fp = &sc->fp[i];
-            taskqueue_enqueue(fp->tq, &fp->tx_task);
-	}
     }
 
     if (sc->link_vars.link_up && sc->link_vars.line_speed) {
@@ -16279,9 +16279,11 @@ bxe_shutdown(device_t dev)
     /* stop the periodic callout */
     bxe_periodic_stop(sc);
 
-    BXE_CORE_LOCK(sc);
-    bxe_nic_unload(sc, UNLOAD_NORMAL, FALSE);
-    BXE_CORE_UNLOCK(sc);
+    if (sc->state != BXE_STATE_CLOSED) {
+    	BXE_CORE_LOCK(sc);
+    	bxe_nic_unload(sc, UNLOAD_NORMAL, FALSE);
+    	BXE_CORE_UNLOCK(sc);
+    }
 
     return (0);
 }


More information about the svn-src-all mailing list