]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Work around some nasty bugs on the [beta] Itanium2's E1000 UNDI driver.
authorpeter <peter@FreeBSD.org>
Sat, 20 Jul 2002 03:51:53 +0000 (03:51 +0000)
committerpeter <peter@FreeBSD.org>
Sat, 20 Jul 2002 03:51:53 +0000 (03:51 +0000)
commit3c805ef8bd61a3ab8eca8e44853ab0eb69df2192
treeda8ba722ee4dac361fb771e61064a3098ba09461
parent4af604d0520417bba59538b8ce875dec93a5e6fb
Work around some nasty bugs on the [beta] Itanium2's E1000 UNDI driver.

Bug#1: The GetStatus() function returns radically different pointers that
do not match any packets we transmitted.  I think it might be pointing to
a copy of the packet or something.  Since we do not transmit more than
one packet at a time, just wait for "anything".

Bug#2: The Receive() function takes a pointer and a length.  However, it
either ignores the length or otherwise does bad things and writes outside
of ptr[0] through ptr[len-1].  This is bad and causes massive stack
corruption for us since we are receiving packets into small buffers on
the stack.  Instead, Receive() into a large enough buffer and bcopy the
data to the requested area.
sys/boot/efi/libefi/efinet.c