[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