cvs commit: src/sys/dev/bce if_bce.c

Scott Long scottl at
Thu May 8 15:05:39 UTC 2008

scottl      2008-05-08 15:05:38 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/bce          if_bce.c 
  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.
  Revision  Changes    Path
  1.39      +8 -0      src/sys/dev/bce/if_bce.c

More information about the cvs-src mailing list