From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Frysinger Date: Wed, 15 Jul 2009 11:05:44 -0400 Subject: [U-Boot] [PATCH] eth_receive(): Do not assume that caller always wants full packet. In-Reply-To: <1247558915-26591-1-git-send-email-kosmo@semihalf.com> References: <1247558915-26591-1-git-send-email-kosmo@semihalf.com> Message-ID: <200907151105.45474.vapier@gentoo.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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