Author: jfv
Date: Wed Aug 15 17:12:40 2012
New Revision: 239304
URL: http://svn.freebsd.org/changeset/base/239304

Log:
  Customer report of a panic on boot due to the old
  "m_getjcl:invalid cluster type" that occurred some
  time back with the igb driver. This happens often when
  booting over the net. I believe the NIC hardware is left
  in a warm state when handed over to the driver, and a stray
  RX interrupt happens earlier than the code is prepared for
  it to happen. This change was verified to fix the problem,
  its kind of a bandaid... but it is similar to what was done
  in the igb code.

Modified:
  head/sys/dev/e1000/if_em.c

Modified: head/sys/dev/e1000/if_em.c
==============================================================================
--- head/sys/dev/e1000/if_em.c  Wed Aug 15 16:19:39 2012        (r239303)
+++ head/sys/dev/e1000/if_em.c  Wed Aug 15 17:12:40 2012        (r239304)
@@ -1570,6 +1570,8 @@ em_msix_rx(void *arg)
        bool            more;
 
        ++rxr->rx_irq;
+       if (!(adapter->ifp->if_drv_flags & IFF_DRV_RUNNING))
+               return;
        more = em_rxeof(rxr, adapter->rx_process_limit, NULL);
        if (more)
                taskqueue_enqueue(rxr->tq, &rxr->rx_task);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to