stand/uboot: Explain why we test for NULL here

Most parsedev routines assume that idev is non-null and can always be
set. Since we break from this pattern in uboot, explain why in a
comment. devparse was invented to put a lot of common code in one place
and to simplify the archsw.arch_getdev code and any dv_parsedev code
called. However, uboot couldn't use devparse at the time because its
device naming scheme slightly different parsing. So, we still use
uboot_parsedev directly from uboot_getdev where dev could be NULL. Add a
comment to this effect.

The match functionality added for ofw likely could be used to clean up
the multiple kludges that are here for uboot's device naming differences
with the normal boot loader. This work will wait for the future.

Sponsored by:		Netflix
Reviewed by:		kevans
Differential Revision:	https://reviews.freebsd.org/D38042
This commit is contained in:
Warner Losh 2023-01-13 14:19:47 -07:00
parent d38d8a4c4e
commit 5740057b43

View File

@ -148,6 +148,10 @@ uboot_parsedev(struct uboot_devdesc **dev, const char *devspec,
goto fail;
}
idev->dd.d_dev = dv;
/*
* dev can be NULL, since uboot_getdev calls us directly, rather than via
* dv_parsedev in devparse() which otherwise ensures that it can't be NULL.
*/
if (dev == NULL) {
free(idev);
} else {