[U-Boot] Env var initrd_high - logic reversed in check?

Hi all,
I've been trying to stop my initrd being relocated duing a bootm process, and ended up at this bit of code in common/image.c (starting line 1135):
if ((s = getenv("initrd_high")) != NULL) { /* a value of "no" or a similar string will act like 0, * turning the "load high" feature off. This is intentional. */ initrd_high = simple_strtoul(s, NULL, 16); if (initrd_high == ~0) initrd_copy_to_ram = 0; } else { initrd_high = getenv_bootm_mapsize() + getenv_bootm_low(); }
The check - "if (initrd_high == ~0)" seems wrong - based on the comment an value of "no" for initrd_high gets interpreted as 0. But the test is effectively for 0xffffffff (or 0xffffffffffffffff). Assuming the comment is correct, shouldn't the check be against 0 rather than ~0 ?
Thanks
participants (1)
-
Peter Howard