svn commit: r238765 - head/sys/dev/e1000

Garrett Cooper yanegomi at gmail.com
Tue Jul 31 16:29:34 UTC 2012


On Tue, Jul 31, 2012 at 9:20 AM, Jack Vogel <jfvogel at gmail.com> wrote:
> Yes, I agree John, that was ugly, I'm already taking care of it with my
> changes,
> I'll send you a copy to check out.

Like so:

--- //depot/user/gcooper/atf-head/src/sys/dev/e1000/if_lem.c
2012-07-25 17:11:00.000000000 0000
+++ /scratch/p4/user/gcooper/atf-head/src/sys/dev/e1000/if_lem.c
 2012-07-25 17:11:00.000000000 0000
@@ -1320,9 +1320,10 @@
                    lem_local_timer, adapter);
                goto out;
        }
+       EM_CORE_UNLOCK(adapter);

+       lem_rxeof(adapter, -1, NULL);
        EM_TX_LOCK(adapter);
-       lem_rxeof(adapter, -1, NULL);
        lem_txeof(adapter);
        if (ifp->if_drv_flags & IFF_DRV_RUNNING &&
            !IFQ_DRV_IS_EMPTY(&ifp->if_snd))
@@ -1330,8 +1331,8 @@
        EM_TX_UNLOCK(adapter);

 out:
-       EM_CORE_UNLOCK(adapter);
-       return;
+       if (mtx_owned(&adapter->core_mtx))
+               EM_CORE_UNLOCK(adapter);
 }

 #else /* EM_FAST_IRQ, then fast interrupt routines only */


More information about the svn-src-all mailing list