Re: if_tap unaligned access problem
From: John-Mark Gurney (gurney_j_at_resnet.uoregon.edu)
Date: 04/29/05
- Previous message: Maksim Yevmenkin: "Re: if_tap unaligned access problem"
- In reply to: Maksim Yevmenkin: "Re: if_tap unaligned access problem"
- Next in thread: Maksim Yevmenkin: "Re: if_tap unaligned access problem"
- Reply: Maksim Yevmenkin: "Re: if_tap unaligned access problem"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Fri, 29 Apr 2005 11:28:19 -0700 To: Maksim Yevmenkin <maksim.yevmenkin@savvis.net>
Maksim Yevmenkin wrote this message on Fri, Apr 29, 2005 at 10:51 -0700:
> [...]
>
> >>>>i think we have few options here:
> >>>>
> >>>>1) revert back original tapwrite function that was changed in v.
> >>>>1.48 and set offset to 2 bytes in top mbuf
> >>>>
> >>>>2) change current version of tapwrite so it would m_prepend and
> >>>>m_pullup mbuf after m_uiotombuf
> >>>>
> >>>>3) change m_uiotombuf to accept one more parameter - mbuf offset at
> >>>>which data should be copied. there are not that many users of
> >>>>m_uiotombuf
>
> please find and review the attached patch (untested) that implements
> option (3) above.
>
> >I could try to port the changes netbsd made using m_copyup and
> >send you the resulting patchfile. IPv4 has already been serviced by
> >John-Mark Gurney in perforce.
>
> having these changes in the tree is a good thing, but it will require
> more testing. maybe for now we could get away with simpler changes?
> @@ -1342,12 +1342,15 @@
> total = min(uio->uio_resid, len);
> else
> total = uio->uio_resid;
> + if (align >= MHLEN)
> + goto nospace;
> if (total > MHLEN)
Shouldn't this check be total + align > MHLEN?
> m_final = m_getcl(how, MT_DATA, M_PKTHDR);
> else
> m_final = m_gethdr(how, MT_DATA);
> if (m_final == NULL)
> goto nospace;
> + m_adj(m_final, align);
> m_new = m_final;
> while (progress < total) {
> length = total - progress;
--
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
- Previous message: Maksim Yevmenkin: "Re: if_tap unaligned access problem"
- In reply to: Maksim Yevmenkin: "Re: if_tap unaligned access problem"
- Next in thread: Maksim Yevmenkin: "Re: if_tap unaligned access problem"
- Reply: Maksim Yevmenkin: "Re: if_tap unaligned access problem"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|