FreeBSD PR

Mark Gooderum mgooderum at netscape.net
Wed Sep 29 14:07:42 PDT 2004


Just filed a PR with the subject:

    "em driver em_poll doesn't start send if pending packets"

the subject should be:

    "em driver em_intr doesn't start send if pending packets"

I believe this may be the problem (and fix) to the if_em problems noted 
in the 5.3 TODO list.  The following patch to em_intr() has fixed the 
problem for us.  We basically would see an em interface hang after 5-10 
minutes of throughput testing GigE-GigE with an Ixia.
-=-
Mark

--- /tmp/tmp.44554.0    Wed Sep 29 15:52:32 2004
+++ 
/data/work/mark/5.3B4A1.i386/usr/build/ambit2/freebsd5/sys/dev/em/if_em.c   
Wed Sep 29 15:51:31 2004
@@ -986,11 +986,11 @@
                         em_clean_transmit_interrupts(adapter);
                 }
                 loop_cnt--;
         }

-        if (ifp->if_flags & IFF_RUNNING && IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+        if (ifp->if_flags & IFF_RUNNING && !IFQ_DRV_IS_EMPTY(&ifp->if_snd))
                 em_start_locked(ifp);

        EM_UNLOCK(adapter);
         return;
 }





More information about the freebsd-bugbusters mailing list