[U-Boot] Net driver questions

Krzysztof Halasa khc at pm.waw.pl
Tue Nov 3 00:38:59 CET 2009


Mike Frysinger <vapier at gentoo.org> writes:

>> Let's look... The code does NetSetHandler(TftpHandler).
>> I think NetReceive() calls (*packetHandler)() = TftpHandler and this one
>> may call NetStartAgain().
>
> but this doesnt call recv(), and NetStartAgain() changes the handler, so i 
> still dont see recursion with the recv() function.  but perhaps your 
> definition of recursive is different from mine.  recv() does not turn around 
> and call recv(), but recv() may turn around and call other driver functions.

I haven't debugged it yet (is there a way to print a backtrace?) but
the first recv() doesn't return from NetReceive().

> the tftp error behavior is to basically discard all pending packets, so in 
> practice, it shouldnt be a big deal.  it would probably be cleaner though if 
> the packet handler returned an integer indicating errors that NetReceive() 
> would pass up so that the driver recv knew to stop processing packets right 
> away.

I think so. I'll look at it too.
-- 
Krzysztof Halasa


More information about the U-Boot mailing list