[U-Boot] [PATCH] eth_receive(): Do not assume that caller always wants full packet.

Mike Frysinger vapier at gentoo.org
Wed Jul 15 17:05:44 CEST 2009


On Tuesday 14 July 2009 04:08:35 Piotr Ziecik wrote:
> When packets arrive on the interface that are larger than the buffer
> being passed to U-Boot from a standalone application, then the
> eth_receive() returns -1 and leaves the packet saved. The next call to
> eth_receive() will find that same packet and can fail for the exact same
> reason. A typical scenario is the loader doing ARP with a buffer of 66
> bytes. The end result is that the ARP will fail and the loader panics.
>
> This patch fixes above problem by allowing partial packet read.

seems like it could easily introduce incorrect behavior in existing 
applications.  the code also sounds a bit risky ... your change would mean 
people could read the leading part, but the rest is lost ?

probably better to add a new function with explicit semantics -- 
eth_receive_partial() or something.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20090715/1fc7cdfc/attachment.pgp 


More information about the U-Boot mailing list