svn commit: r203754 - head/sys/mips/rmi/dev/xlr

Randall Stewart rrs at FreeBSD.org
Wed Feb 10 13:48:34 UTC 2010


Author: rrs
Date: Wed Feb 10 13:48:34 2010
New Revision: 203754
URL: http://svn.freebsd.org/changeset/base/203754

Log:
  If a mbuf is split across two pages, we
  have code that detects this and makes two
  transmit descriptors. However its possible
  that the algorithm detects when the second
  page is not used (when the data aligns perfectly
  to the bottom of the page). This caused a 0
  len descriptor to be added which locks up the
  rge device. Skip such things with a continue.
  
  JC provided this patch... Thanks JC :-)
  Obtained from:	JC (c.jayachandran at gmail.com)

Modified:
  head/sys/mips/rmi/dev/xlr/rge.c

Modified: head/sys/mips/rmi/dev/xlr/rge.c
==============================================================================
--- head/sys/mips/rmi/dev/xlr/rge.c	Wed Feb 10 12:20:08 2010	(r203753)
+++ head/sys/mips/rmi/dev/xlr/rge.c	Wed Feb 10 13:48:34 2010	(r203754)
@@ -577,6 +577,8 @@ build_frag_list(struct mbuf *m_head, str
 				taddr = (vm_offset_t)m->m_data + len1;
 				p2 = vtophys(taddr);
 				len2 = m->m_len - len1;
+				if (len2 == 0)
+					continue;
 				if (nfrag >= XLR_MAX_TX_FRAGS)
 					panic("TX frags exceeded");
 


More information about the svn-src-head mailing list