Scott Long wrote:
scottl      2008-05-08 15:05:38 UTC

  FreeBSD src repository

  Modified files:
sys/dev/bce if_bce.c Log:
  The BCE chips appear to have an undocumented requirement that RX frames be
  aligned on an 8 byte boundary.  Prior to rev 1.36 this wasn't a problem
  because mbuf clusters tend be naturally aligned.  The switch to using
  split buffers with the first buffer being the embedded data area of the
  mbuf has broken this assumption, at least on i386, causing a complete
  failure of RX functionality.  Fix this for now by using a full cluster for
  the first RX buffer.  A more sophisticated approach could be done with the
  old buffer scheme to realign the m_data pointer with m_adj(), but I'm also
  not clear on performance benefits of this old scheme or the performance
  implications of adding an m_adj() call to every allocation.

m_align() to your rescue.  m_adj() probably wont do the right thing on
an empty mbuf (-cluster).

--
Andre

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to