* [PATCH] boot: image-board: Mismatch a type between variable and return value [not found] <CGME20241105221151epcas1p2096fdad52d8b4977f707e4b1b3a47849@epcas1p2.samsung.com> @ 2024-11-05 22:11 ` Jaehoon Chung 2024-11-05 22:57 ` Marek Vasut 0 siblings, 1 reply; 4+ messages in thread From: Jaehoon Chung @ 2024-11-05 22:11 UTC (permalink / raw) To: u-boot Cc: trini, sjg, marek.vasut+renesas, laurent.pinchart, m.szyprowski, Jaehoon Chung phys_addr_t can be used unsigned long long type with CONFIG_PHYS_64BIT. But hextoul() is always returning to unsigned long. It can be assigned to unexpected value. To avoid wrong behavior, change from hextoul() to simple_strtoull(). Fixes: a4df06e41fa2 ("boot: fdt: Change type of env_get_bootm_low() to phys_addr_t") Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> --- boot/image-board.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot/image-board.c b/boot/image-board.c index 1757e5816d84..977343a8995c 100644 --- a/boot/image-board.c +++ b/boot/image-board.c @@ -547,7 +547,7 @@ int boot_ramdisk_high(ulong rd_data, ulong rd_len, ulong *initrd_start, /* a value of "no" or a similar string will act like 0, * turning the "load high" feature off. This is intentional. */ - initrd_high = hextoul(s, NULL); + initrd_high = simple_strtoull(s, NULL, 16); if (initrd_high == ~0) initrd_copy_to_ram = 0; } else { -- 2.25.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] boot: image-board: Mismatch a type between variable and return value 2024-11-05 22:11 ` [PATCH] boot: image-board: Mismatch a type between variable and return value Jaehoon Chung @ 2024-11-05 22:57 ` Marek Vasut 2024-11-05 23:47 ` Jaehoon Chung 0 siblings, 1 reply; 4+ messages in thread From: Marek Vasut @ 2024-11-05 22:57 UTC (permalink / raw) To: Jaehoon Chung, u-boot Cc: trini, sjg, marek.vasut+renesas, laurent.pinchart, m.szyprowski On 11/5/24 11:11 PM, Jaehoon Chung wrote: > phys_addr_t can be used unsigned long long type with CONFIG_PHYS_64BIT. > But hextoul() is always returning to unsigned long. It can be assigned > to unexpected value. To avoid wrong behavior, change from hextoul() to > simple_strtoull(). > > Fixes: a4df06e41fa2 ("boot: fdt: Change type of env_get_bootm_low() to phys_addr_t") Looking at: 7e5f460ec457 ("global: Convert simple_strtoul() with hex to hextoul()") do you have to update any of the other hextoul() calls too ? Maybe we need hextoull() ? > Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> > --- > boot/image-board.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/boot/image-board.c b/boot/image-board.c > index 1757e5816d84..977343a8995c 100644 > --- a/boot/image-board.c > +++ b/boot/image-board.c > @@ -547,7 +547,7 @@ int boot_ramdisk_high(ulong rd_data, ulong rd_len, ulong *initrd_start, > /* a value of "no" or a similar string will act like 0, > * turning the "load high" feature off. This is intentional. > */ > - initrd_high = hextoul(s, NULL); > + initrd_high = simple_strtoull(s, NULL, 16); > if (initrd_high == ~0) > initrd_copy_to_ram = 0; > } else { ^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH] boot: image-board: Mismatch a type between variable and return value 2024-11-05 22:57 ` Marek Vasut @ 2024-11-05 23:47 ` Jaehoon Chung 2024-11-06 2:12 ` Marek Vasut 0 siblings, 1 reply; 4+ messages in thread From: Jaehoon Chung @ 2024-11-05 23:47 UTC (permalink / raw) To: 'Marek Vasut', u-boot Cc: trini, sjg, marek.vasut+renesas, laurent.pinchart, m.szyprowski > -----Original Message----- > From: Marek Vasut <marek.vasut@mailbox.org> > Sent: Wednesday, November 6, 2024 7:57 AM > To: Jaehoon Chung <jh80.chung@samsung.com>; u-boot@lists.denx.de > Cc: trini@konsulko.com; sjg@chromium.org; marek.vasut+renesas@mailbox.org; > laurent.pinchart@ideasonboard.com; m.szyprowski@samsung.com > Subject: Re: [PATCH] boot: image-board: Mismatch a type between variable and return value > > On 11/5/24 11:11 PM, Jaehoon Chung wrote: > > phys_addr_t can be used unsigned long long type with CONFIG_PHYS_64BIT. > > But hextoul() is always returning to unsigned long. It can be assigned > > to unexpected value. To avoid wrong behavior, change from hextoul() to > > simple_strtoull(). > > > > Fixes: a4df06e41fa2 ("boot: fdt: Change type of env_get_bootm_low() to phys_addr_t") > > Looking at: > > 7e5f460ec457 ("global: Convert simple_strtoul() with hex to hextoul()") Thanks for informing it. > > do you have to update any of the other hextoul() calls too ? I didn't check other hextoul(). During booting with initramfs on RPi (32bit), I found the problem that is not working fine because of this. > > Maybe we need hextoull() ? IMO, We need hextoull() for some cases. If there is no objection, I will send the patch for adding hextoull(). And I will check entire cases. Best Regards, Jaehoon Chung > > > Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> > > --- > > boot/image-board.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/boot/image-board.c b/boot/image-board.c > > index 1757e5816d84..977343a8995c 100644 > > --- a/boot/image-board.c > > +++ b/boot/image-board.c > > @@ -547,7 +547,7 @@ int boot_ramdisk_high(ulong rd_data, ulong rd_len, ulong *initrd_start, > > /* a value of "no" or a similar string will act like 0, > > * turning the "load high" feature off. This is intentional. > > */ > > - initrd_high = hextoul(s, NULL); > > + initrd_high = simple_strtoull(s, NULL, 16); > > if (initrd_high == ~0) > > initrd_copy_to_ram = 0; > > } else { > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] boot: image-board: Mismatch a type between variable and return value 2024-11-05 23:47 ` Jaehoon Chung @ 2024-11-06 2:12 ` Marek Vasut 0 siblings, 0 replies; 4+ messages in thread From: Marek Vasut @ 2024-11-06 2:12 UTC (permalink / raw) To: Jaehoon Chung, u-boot Cc: trini, sjg, marek.vasut+renesas, laurent.pinchart, m.szyprowski On 11/6/24 12:47 AM, Jaehoon Chung wrote: > >> -----Original Message----- >> From: Marek Vasut <marek.vasut@mailbox.org> >> Sent: Wednesday, November 6, 2024 7:57 AM >> To: Jaehoon Chung <jh80.chung@samsung.com>; u-boot@lists.denx.de >> Cc: trini@konsulko.com; sjg@chromium.org; marek.vasut+renesas@mailbox.org; >> laurent.pinchart@ideasonboard.com; m.szyprowski@samsung.com >> Subject: Re: [PATCH] boot: image-board: Mismatch a type between variable and return value >> >> On 11/5/24 11:11 PM, Jaehoon Chung wrote: >>> phys_addr_t can be used unsigned long long type with CONFIG_PHYS_64BIT. >>> But hextoul() is always returning to unsigned long. It can be assigned >>> to unexpected value. To avoid wrong behavior, change from hextoul() to >>> simple_strtoull(). >>> >>> Fixes: a4df06e41fa2 ("boot: fdt: Change type of env_get_bootm_low() to phys_addr_t") >> >> Looking at: >> >> 7e5f460ec457 ("global: Convert simple_strtoul() with hex to hextoul()") > > Thanks for informing it. > >> >> do you have to update any of the other hextoul() calls too ? > > I didn't check other hextoul(). > During booting with initramfs on RPi (32bit), I found the problem that is not working fine because of this. Please check the other sites too, maybe there are more of these issues lurking around. >> Maybe we need hextoull() ? > > IMO, We need hextoull() for some cases. > If there is no objection, I will send the patch for adding hextoull(). > And I will check entire cases. No objection from me. Thank you. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-11-06 2:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20241105221151epcas1p2096fdad52d8b4977f707e4b1b3a47849@epcas1p2.samsung.com>
2024-11-05 22:11 ` [PATCH] boot: image-board: Mismatch a type between variable and return value Jaehoon Chung
2024-11-05 22:57 ` Marek Vasut
2024-11-05 23:47 ` Jaehoon Chung
2024-11-06 2:12 ` Marek Vasut
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.