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