Author: yongari
Date: Mon Feb 22 00:58:04 2016
New Revision: 295873
URL: https://svnweb.freebsd.org/changeset/base/295873

Log:
  ifnet lock was changed to use sx(9) long time ago.
  Don't hold a driver lock for if_free(9).

Modified:
  head/sys/dev/msk/if_msk.c
  head/sys/dev/sk/if_sk.c

Modified: head/sys/dev/msk/if_msk.c
==============================================================================
--- head/sys/dev/msk/if_msk.c   Mon Feb 22 00:49:35 2016        (r295872)
+++ head/sys/dev/msk/if_msk.c   Mon Feb 22 00:58:04 2016        (r295873)
@@ -2059,11 +2059,11 @@ msk_detach(device_t dev)
        msk_txrx_dma_free(sc_if);
        bus_generic_detach(dev);
 
-       if (ifp)
-               if_free(ifp);
        sc = sc_if->msk_softc;
        sc->msk_if[sc_if->msk_port] = NULL;
        MSK_IF_UNLOCK(sc_if);
+       if (ifp)
+               if_free(ifp);
 
        return (0);
 }

Modified: head/sys/dev/sk/if_sk.c
==============================================================================
--- head/sys/dev/sk/if_sk.c     Mon Feb 22 00:49:35 2016        (r295872)
+++ head/sys/dev/sk/if_sk.c     Mon Feb 22 00:58:04 2016        (r295873)
@@ -1833,8 +1833,6 @@ sk_detach(dev)
                ether_ifdetach(ifp);
                SK_IF_LOCK(sc_if);
        }
-       if (ifp)
-               if_free(ifp);
        /*
         * We're generally called from skc_detach() which is using
         * device_delete_child() to get to here. It's already trashed
@@ -1848,6 +1846,8 @@ sk_detach(dev)
        sk_dma_jumbo_free(sc_if);
        sk_dma_free(sc_if);
        SK_IF_UNLOCK(sc_if);
+       if (ifp)
+               if_free(ifp);
 
        return(0);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to