Subject: Re: kern/3536: Not putting packet headers in a separate mbuf causes panic on mips?
To: None <jonathan@dsg.stanford.edu>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: netbsd-bugs
Date: 04/25/1997 12:02:42
On Fri, 25 Apr 1997 11:55:34 -0700 (PDT) 
 Jonathan Stone <jonathan@DSG.Stanford.EDU> wrote:

 > >Fix:
 > 
 > Reverting to rev 1.30 of am7990.c works around this problem for me.  I
 > don't know whether it's better to do that, or to rework ipintr() to
 > handle the mbuf chains that am7990.c now produces.

...I believe this is the correct solution... This is an issue on the
Alpha, as well.  All of the network drivers on the Alpha currently
align the IP header in a separate mbuf (except for the LANCE, now,
apparently... I haven't updated my DEC 3000 yet).

I discussed this with Matt Thomas some months ago, and we came to
the conclusion that it would be best solved in ipintr(), using
the ALIGNED_POINTER() macro.  If it is not aligned, copy the IP header
into a new mbuf, m_prepend() it, and continue.

Compilers would remove the dead code on systems where this isn't an
issue, and on systems where it _is_ an issue, you don't have to put
alignment crap into ever driver (esp since alignment issues might be
different for each layer 3).

Jason R. Thorpe                                       thorpej@nas.nasa.gov
NASA Ames Research Center                               Home: 408.866.1912
NAS: M/S 258-6                                          Work: 415.604.0935
Moffett Field, CA 94035                                Pager: 415.428.6939