On Thu, Mar 05, 2020 at 09:15:57PM +0100, Daniel Glöckner wrote:
> Am 03/05/20 um 08:50 schrieb Sascha Hauer:
> >> +          const char *fastboot_files = getenv("nv.fastboot.files");
> > 
> > Please don't use nv variables directly, always use the corresponding
> > global variable.
> > 
> > For USB fastboot we have a variable global.usbgadget.fastboot_function
> > for the same purpose. We should probably use the same variable for both
> > fastboot variants and maybe also for DFU. How about moving the variable
> > name out of that usbgadget namespace and use something like
> > global.update_partitions? There might be better names...
> 
> Since there is also the question what to do with global.usbgadget
> .fastboot_max_download_size, we could introduce a new namespace for
> fastboot and call the variables global.fastboot.update_partitions
> and global.fastboot.max_download_size. Although I would prefer
> "partitions" to "update_partitions".
> 
> > Interestingly this only became a problem with my change, I tested your
> > fastboot net patches as-is and it works fluently.
> 
> Maybe it works with the fastboot code because the poller is registered
> in a very late initcall. Or did it cause problems for you after all
> initcalls had run?
> 
> > My
> > favourite solution would be to move net_poll() inside a poller indeed,
> > but I currently have no good idea how to fix this mdio read problem.
> 
> How about wrapping the body of mdiobus_read, mdiobus_write, eth_send,
> eth_rx, eth_check_open, and maybe even mdiobus_register, eth_register,
> and eth_unregister in
> 
> net_entered++;
> ...
> net_entered--;
> 
> and then immediately returning from net_poll if net_entered != 0 on
> entry? That's similar to how poller_call prevents reentrance.

Yes, something like that. I created a series which implements such a
scheme, but a little more generic so that hopefully it will help with
the same problem in other areas as well.

Regards
 Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to