Subject: Re: kern/31323: vge on !i386 is broken.
To: Murata Shuuichirou <email@example.com>
From: Martin Husemann <firstname.lastname@example.org>
Date: 09/16/2005 08:57:15
On Fri, Sep 16, 2005 at 03:30:54PM +0900, Murata Shuuichirou wrote:
> 1. What is ETHER_ALIGN, and why ETHER_ALIGN is used here.
> 2. Whether amd64 needs whole VGE_FIXUP_RX or not.
2 is harder to answer - I don't understand the comment in if_vge.c:1042 at
all. How would 32bit alignment of the rx buffer make the received data
unaligned? What does the chip prepend to the data and what size is it?
1 is easier: ETHER_ALIGN is a define in if_vgevar.h and it's wrong. It probably
was 2 on FreeBSD (for the two bytes the VGE_FIXUP_RX moves the buffer content
around) and someone eroneosly changed it to 0 for NetBSD.