public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v2 1/4] boot: fdt: Change type of env_get_bootm_low() to phys_addr_t
@ 2024-03-18 15:00 Marek Vasut
  2024-03-18 15:00 ` [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size() Marek Vasut
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Marek Vasut @ 2024-03-18 15:00 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Laurent Pinchart, Heinrich Schuchardt,
	Kuninori Morimoto, Simon Glass, Tom Rini

Change type of ulong env_get_bootm_low() to phys_addr_t env_get_bootm_low().
The PPC/LS systems already treat env_get_bootm_low() result as phys_addr_t,
while the function itself still returns ulong. This is potentially dangerous
on 64bit systems, where ulong might not be large enough to hold the content
of "bootm_low" environment variable. Fix it by using phys_addr_t, similar to
what env_get_bootm_size() does, which returns phys_size_t .

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reported-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
---
V2: - Drop now unnecessary conversion in boot_start_lmb()
      lmb_init_and_reserve_range()
    - Drop tmp variable in env_get_bootm_low()
    - Print initrd_high as u64/%llx
    - Add RB from Laurent
---
 boot/bootm.c       |  4 ++--
 boot/image-board.c | 14 ++++++--------
 boot/image-fdt.c   |  9 +++++----
 include/image.h    |  2 +-
 4 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/boot/bootm.c b/boot/bootm.c
index d071537d692..032f5a4a160 100644
--- a/boot/bootm.c
+++ b/boot/bootm.c
@@ -242,13 +242,13 @@ static int boot_get_kernel(const char *addr_fit, struct bootm_headers *images,
 #ifdef CONFIG_LMB
 static void boot_start_lmb(struct bootm_headers *images)
 {
-	ulong		mem_start;
+	phys_addr_t	mem_start;
 	phys_size_t	mem_size;
 
 	mem_start = env_get_bootm_low();
 	mem_size = env_get_bootm_size();
 
-	lmb_init_and_reserve_range(&images->lmb, (phys_addr_t)mem_start,
+	lmb_init_and_reserve_range(&images->lmb, mem_start,
 				   mem_size, NULL);
 }
 #else
diff --git a/boot/image-board.c b/boot/image-board.c
index 75f6906cd56..3263497a1d5 100644
--- a/boot/image-board.c
+++ b/boot/image-board.c
@@ -107,14 +107,12 @@ static int on_loadaddr(const char *name, const char *value, enum env_op op,
 }
 U_BOOT_ENV_CALLBACK(loadaddr, on_loadaddr);
 
-ulong env_get_bootm_low(void)
+phys_addr_t env_get_bootm_low(void)
 {
 	char *s = env_get("bootm_low");
 
-	if (s) {
-		ulong tmp = hextoul(s, NULL);
-		return tmp;
-	}
+	if (s)
+		return simple_strtoull(s, NULL, 16);
 
 #if defined(CFG_SYS_SDRAM_BASE)
 	return CFG_SYS_SDRAM_BASE;
@@ -538,7 +536,7 @@ int boot_ramdisk_high(struct lmb *lmb, ulong rd_data, ulong rd_len,
 		      ulong *initrd_start, ulong *initrd_end)
 {
 	char	*s;
-	ulong	initrd_high;
+	phys_addr_t initrd_high;
 	int	initrd_copy_to_ram = 1;
 
 	s = env_get("initrd_high");
@@ -553,8 +551,8 @@ int boot_ramdisk_high(struct lmb *lmb, ulong rd_data, ulong rd_len,
 		initrd_high = env_get_bootm_mapsize() + env_get_bootm_low();
 	}
 
-	debug("## initrd_high = 0x%08lx, copy_to_ram = %d\n",
-	      initrd_high, initrd_copy_to_ram);
+	debug("## initrd_high = 0x%llx, copy_to_ram = %d\n",
+	      (u64)initrd_high, initrd_copy_to_ram);
 
 	if (rd_data) {
 		if (!initrd_copy_to_ram) {	/* zero-copy ramdisk support */
diff --git a/boot/image-fdt.c b/boot/image-fdt.c
index 5e4aa9de0d2..c2571b22244 100644
--- a/boot/image-fdt.c
+++ b/boot/image-fdt.c
@@ -160,9 +160,10 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
 {
 	void	*fdt_blob = *of_flat_tree;
 	void	*of_start = NULL;
-	u64	start, size, usable;
+	phys_addr_t start, size, usable;
 	char	*fdt_high;
-	ulong	mapsize, low;
+	phys_addr_t low;
+	phys_size_t mapsize;
 	ulong	of_len = 0;
 	int	bank;
 	int	err;
@@ -217,7 +218,7 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
 			if (start + size < low)
 				continue;
 
-			usable = min(start + size, (u64)(low + mapsize));
+			usable = min(start + size, low + mapsize);
 
 			/*
 			 * At least part of this DRAM bank is usable, try
@@ -233,7 +234,7 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
 			 * Reduce the mapping size in the next bank
 			 * by the size of attempt in current bank.
 			 */
-			mapsize -= usable - max(start, (u64)low);
+			mapsize -= usable - max(start, low);
 			if (!mapsize)
 				break;
 		}
diff --git a/include/image.h b/include/image.h
index 21de70f0c9e..acffd17e0df 100644
--- a/include/image.h
+++ b/include/image.h
@@ -946,7 +946,7 @@ static inline void image_set_name(struct legacy_img_hdr *hdr, const char *name)
 int image_check_hcrc(const struct legacy_img_hdr *hdr);
 int image_check_dcrc(const struct legacy_img_hdr *hdr);
 #ifndef USE_HOSTCC
-ulong env_get_bootm_low(void);
+phys_addr_t env_get_bootm_low(void);
 phys_size_t env_get_bootm_size(void);
 phys_size_t env_get_bootm_mapsize(void);
 #endif
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size()
  2024-03-18 15:00 [PATCH v2 1/4] boot: fdt: Change type of env_get_bootm_low() to phys_addr_t Marek Vasut
@ 2024-03-18 15:00 ` Marek Vasut
  2024-03-18 16:18   ` Laurent Pinchart
  2024-03-18 15:00 ` [PATCH v2 3/4] boot: fdt: Drop lmb_alloc*() typecasts Marek Vasut
  2024-03-18 15:00 ` [PATCH v2 4/4] boot: fdt: Move usable variable below updated comment Marek Vasut
  2 siblings, 1 reply; 9+ messages in thread
From: Marek Vasut @ 2024-03-18 15:00 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Heinrich Schuchardt, Kuninori Morimoto,
	Laurent Pinchart, Simon Glass, Tom Rini

Clean up tmp variable use and type cast in env_get_bootm_size().
No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
---
V2: - New patch
---
 boot/image-board.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/boot/image-board.c b/boot/image-board.c
index 3263497a1d5..e3d63745299 100644
--- a/boot/image-board.c
+++ b/boot/image-board.c
@@ -129,10 +129,8 @@ phys_size_t env_get_bootm_size(void)
 	phys_addr_t start;
 	char *s = env_get("bootm_size");
 
-	if (s) {
-		tmp = (phys_size_t)simple_strtoull(s, NULL, 16);
-		return tmp;
-	}
+	if (s)
+		return simple_strtoull(s, NULL, 16);
 
 	start = gd->ram_base;
 	size = gd->ram_size;
@@ -142,7 +140,7 @@ phys_size_t env_get_bootm_size(void)
 
 	s = env_get("bootm_low");
 	if (s)
-		tmp = (phys_size_t)simple_strtoull(s, NULL, 16);
+		tmp = simple_strtoull(s, NULL, 16);
 	else
 		tmp = start;
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 3/4] boot: fdt: Drop lmb_alloc*() typecasts
  2024-03-18 15:00 [PATCH v2 1/4] boot: fdt: Change type of env_get_bootm_low() to phys_addr_t Marek Vasut
  2024-03-18 15:00 ` [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size() Marek Vasut
@ 2024-03-18 15:00 ` Marek Vasut
  2024-03-18 16:20   ` Laurent Pinchart
  2024-03-18 15:00 ` [PATCH v2 4/4] boot: fdt: Move usable variable below updated comment Marek Vasut
  2 siblings, 1 reply; 9+ messages in thread
From: Marek Vasut @ 2024-03-18 15:00 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Laurent Pinchart, Heinrich Schuchardt,
	Kuninori Morimoto, Simon Glass, Tom Rini

The lmb_alloc_base() returns phys_addr_t , map_sysmem() accepts
phys_addr_t as first parameter. Declare 'addr' as phys_addr_t and
get rid of the casts.

Reported-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
---
V2: - Replace $addr with 'addr' to somehow delimit the variable name
---
 boot/image-fdt.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/boot/image-fdt.c b/boot/image-fdt.c
index c2571b22244..c37442c9130 100644
--- a/boot/image-fdt.c
+++ b/boot/image-fdt.c
@@ -162,6 +162,7 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
 	void	*of_start = NULL;
 	phys_addr_t start, size, usable;
 	char	*fdt_high;
+	phys_addr_t addr;
 	phys_addr_t low;
 	phys_size_t mapsize;
 	ulong	of_len = 0;
@@ -186,7 +187,6 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
 	fdt_high = env_get("fdt_high");
 	if (fdt_high) {
 		ulong desired_addr = hextoul(fdt_high, NULL);
-		ulong addr;
 
 		if (desired_addr == ~0UL) {
 			/* All ones means use fdt in place */
@@ -224,8 +224,8 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
 			 * At least part of this DRAM bank is usable, try
 			 * using it for LMB allocation.
 			 */
-			of_start = map_sysmem((ulong)lmb_alloc_base(lmb,
-				    of_len, 0x1000, usable), of_len);
+			addr = lmb_alloc_base(lmb, of_len, 0x1000, usable);
+			of_start = map_sysmem(addr, of_len);
 			/* Allocation succeeded, use this block. */
 			if (of_start != NULL)
 				break;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 4/4] boot: fdt: Move usable variable below updated comment
  2024-03-18 15:00 [PATCH v2 1/4] boot: fdt: Change type of env_get_bootm_low() to phys_addr_t Marek Vasut
  2024-03-18 15:00 ` [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size() Marek Vasut
  2024-03-18 15:00 ` [PATCH v2 3/4] boot: fdt: Drop lmb_alloc*() typecasts Marek Vasut
@ 2024-03-18 15:00 ` Marek Vasut
  2 siblings, 0 replies; 9+ messages in thread
From: Marek Vasut @ 2024-03-18 15:00 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Laurent Pinchart, Heinrich Schuchardt,
	Kuninori Morimoto, Simon Glass, Tom Rini

Move the variable below comment which explains what the variable means.
Update the comment. No functional change.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
---
V2: - Update the comment, s@the the@the@ and quote 'usable'
    - Add RB from Laurent
---
 boot/image-fdt.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/boot/image-fdt.c b/boot/image-fdt.c
index c37442c9130..2b92bdaff16 100644
--- a/boot/image-fdt.c
+++ b/boot/image-fdt.c
@@ -218,12 +218,12 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
 			if (start + size < low)
 				continue;
 
-			usable = min(start + size, low + mapsize);
-
 			/*
 			 * At least part of this DRAM bank is usable, try
-			 * using it for LMB allocation.
+			 * using the DRAM bank up to 'usable' address limit
+			 * for LMB allocation.
 			 */
+			usable = min(start + size, low + mapsize);
 			addr = lmb_alloc_base(lmb, of_len, 0x1000, usable);
 			of_start = map_sysmem(addr, of_len);
 			/* Allocation succeeded, use this block. */
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size()
  2024-03-18 15:00 ` [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size() Marek Vasut
@ 2024-03-18 16:18   ` Laurent Pinchart
  2024-03-20 20:52     ` Marek Vasut
  0 siblings, 1 reply; 9+ messages in thread
From: Laurent Pinchart @ 2024-03-18 16:18 UTC (permalink / raw)
  To: Marek Vasut
  Cc: u-boot, Heinrich Schuchardt, Kuninori Morimoto, Simon Glass,
	Tom Rini

Hi Marek,

Thank you for the patch.

On Mon, Mar 18, 2024 at 04:00:45PM +0100, Marek Vasut wrote:
> Clean up tmp variable use and type cast in env_get_bootm_size().
> No functional change.

The code change looks fine, but you may want to expand the commit
message to explain why this patch improves the code.

> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
> ---
> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Tom Rini <trini@konsulko.com>
> ---
> V2: - New patch
> ---
>  boot/image-board.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/boot/image-board.c b/boot/image-board.c
> index 3263497a1d5..e3d63745299 100644
> --- a/boot/image-board.c
> +++ b/boot/image-board.c
> @@ -129,10 +129,8 @@ phys_size_t env_get_bootm_size(void)
>  	phys_addr_t start;
>  	char *s = env_get("bootm_size");
>  
> -	if (s) {
> -		tmp = (phys_size_t)simple_strtoull(s, NULL, 16);
> -		return tmp;
> -	}
> +	if (s)
> +		return simple_strtoull(s, NULL, 16);
>  
>  	start = gd->ram_base;
>  	size = gd->ram_size;
> @@ -142,7 +140,7 @@ phys_size_t env_get_bootm_size(void)
>  
>  	s = env_get("bootm_low");
>  	if (s)
> -		tmp = (phys_size_t)simple_strtoull(s, NULL, 16);
> +		tmp = simple_strtoull(s, NULL, 16);
>  	else
>  		tmp = start;
>  

Maybe you could even drop the tmp variable completely by writing this

	if (s)
		size -= simple_strtoull(s, NULL, 16) - start;

	return size;

I've never liked variables named tmp :-)

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 3/4] boot: fdt: Drop lmb_alloc*() typecasts
  2024-03-18 15:00 ` [PATCH v2 3/4] boot: fdt: Drop lmb_alloc*() typecasts Marek Vasut
@ 2024-03-18 16:20   ` Laurent Pinchart
  0 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2024-03-18 16:20 UTC (permalink / raw)
  To: Marek Vasut
  Cc: u-boot, Heinrich Schuchardt, Kuninori Morimoto, Simon Glass,
	Tom Rini

Hi Marek,

Thank you for the patch.

On Mon, Mar 18, 2024 at 04:00:46PM +0100, Marek Vasut wrote:
> The lmb_alloc_base() returns phys_addr_t , map_sysmem() accepts
> phys_addr_t as first parameter. Declare 'addr' as phys_addr_t and
> get rid of the casts.
> 
> Reported-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Tom Rini <trini@konsulko.com>
> ---
> V2: - Replace $addr with 'addr' to somehow delimit the variable name
> ---
>  boot/image-fdt.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/boot/image-fdt.c b/boot/image-fdt.c
> index c2571b22244..c37442c9130 100644
> --- a/boot/image-fdt.c
> +++ b/boot/image-fdt.c
> @@ -162,6 +162,7 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
>  	void	*of_start = NULL;
>  	phys_addr_t start, size, usable;
>  	char	*fdt_high;
> +	phys_addr_t addr;
>  	phys_addr_t low;
>  	phys_size_t mapsize;
>  	ulong	of_len = 0;
> @@ -186,7 +187,6 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
>  	fdt_high = env_get("fdt_high");
>  	if (fdt_high) {
>  		ulong desired_addr = hextoul(fdt_high, NULL);
> -		ulong addr;
>  
>  		if (desired_addr == ~0UL) {
>  			/* All ones means use fdt in place */
> @@ -224,8 +224,8 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
>  			 * At least part of this DRAM bank is usable, try
>  			 * using it for LMB allocation.
>  			 */
> -			of_start = map_sysmem((ulong)lmb_alloc_base(lmb,
> -				    of_len, 0x1000, usable), of_len);
> +			addr = lmb_alloc_base(lmb, of_len, 0x1000, usable);
> +			of_start = map_sysmem(addr, of_len);
>  			/* Allocation succeeded, use this block. */
>  			if (of_start != NULL)
>  				break;

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size()
  2024-03-18 16:18   ` Laurent Pinchart
@ 2024-03-20 20:52     ` Marek Vasut
  2024-03-20 21:00       ` Laurent Pinchart
  0 siblings, 1 reply; 9+ messages in thread
From: Marek Vasut @ 2024-03-20 20:52 UTC (permalink / raw)
  To: Laurent Pinchart, Marek Vasut
  Cc: u-boot, Heinrich Schuchardt, Kuninori Morimoto, Simon Glass,
	Tom Rini

On 3/18/24 5:18 PM, Laurent Pinchart wrote:

>> @@ -142,7 +140,7 @@ phys_size_t env_get_bootm_size(void)
>>   
>>   	s = env_get("bootm_low");
>>   	if (s)
>> -		tmp = (phys_size_t)simple_strtoull(s, NULL, 16);
>> +		tmp = simple_strtoull(s, NULL, 16);
>>   	else
>>   		tmp = start;
>>   
> 
> Maybe you could even drop the tmp variable completely by writing this
> 
> 	if (s)
> 		size -= simple_strtoull(s, NULL, 16) - start;
> 
> 	return size;
> 
> I've never liked variables named tmp :-)

No, let's not do this. With this FDT part, the code should be verbose 
and as easy to understand at first glance as possible, no subtraction 
assignments and other shenanigans please.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size()
  2024-03-20 20:52     ` Marek Vasut
@ 2024-03-20 21:00       ` Laurent Pinchart
  2024-03-26 22:19         ` Marek Vasut
  0 siblings, 1 reply; 9+ messages in thread
From: Laurent Pinchart @ 2024-03-20 21:00 UTC (permalink / raw)
  To: Marek Vasut
  Cc: Marek Vasut, u-boot, Heinrich Schuchardt, Kuninori Morimoto,
	Simon Glass, Tom Rini

On Wed, Mar 20, 2024 at 09:52:34PM +0100, Marek Vasut wrote:
> On 3/18/24 5:18 PM, Laurent Pinchart wrote:
> 
> >> @@ -142,7 +140,7 @@ phys_size_t env_get_bootm_size(void)
> >>   
> >>   	s = env_get("bootm_low");
> >>   	if (s)
> >> -		tmp = (phys_size_t)simple_strtoull(s, NULL, 16);
> >> +		tmp = simple_strtoull(s, NULL, 16);
> >>   	else
> >>   		tmp = start;
> >>   
> > 
> > Maybe you could even drop the tmp variable completely by writing this
> > 
> > 	if (s)
> > 		size -= simple_strtoull(s, NULL, 16) - start;
> > 
> > 	return size;
> > 
> > I've never liked variables named tmp :-)
> 
> No, let's not do this. With this FDT part, the code should be verbose 
> and as easy to understand at first glance as possible, no subtraction 
> assignments and other shenanigans please.

How about this ?

	s = env_get("bootm_low");
	if (s) {
		phys_addr_t low_addr = simple_strtoull(s, NULL, 16);
                size -= low_addr - start;
	}

	return size;

If you're going for readability, that's clearer than

	return size - (tmp - start);

and it also interestingly points out that tmp/low_addr should be a
phys_addr_t, not a phys_size_t.

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size()
  2024-03-20 21:00       ` Laurent Pinchart
@ 2024-03-26 22:19         ` Marek Vasut
  0 siblings, 0 replies; 9+ messages in thread
From: Marek Vasut @ 2024-03-26 22:19 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: u-boot, Heinrich Schuchardt, Kuninori Morimoto, Simon Glass,
	Tom Rini

On 3/20/24 10:00 PM, Laurent Pinchart wrote:
> On Wed, Mar 20, 2024 at 09:52:34PM +0100, Marek Vasut wrote:
>> On 3/18/24 5:18 PM, Laurent Pinchart wrote:
>>
>>>> @@ -142,7 +140,7 @@ phys_size_t env_get_bootm_size(void)
>>>>    
>>>>    	s = env_get("bootm_low");
>>>>    	if (s)
>>>> -		tmp = (phys_size_t)simple_strtoull(s, NULL, 16);
>>>> +		tmp = simple_strtoull(s, NULL, 16);
>>>>    	else
>>>>    		tmp = start;
>>>>    
>>>
>>> Maybe you could even drop the tmp variable completely by writing this
>>>
>>> 	if (s)
>>> 		size -= simple_strtoull(s, NULL, 16) - start;
>>>
>>> 	return size;
>>>
>>> I've never liked variables named tmp :-)
>>
>> No, let's not do this. With this FDT part, the code should be verbose
>> and as easy to understand at first glance as possible, no subtraction
>> assignments and other shenanigans please.
> 
> How about this ?
> 
> 	s = env_get("bootm_low");
> 	if (s) {
> 		phys_addr_t low_addr = simple_strtoull(s, NULL, 16);
>                  size -= low_addr - start;
> 	}
> 
> 	return size;
> 
> If you're going for readability, that's clearer than
> 
> 	return size - (tmp - start);

I do not share this opinion, the subtraction assignment makes this 
harder to read. If that makes for a more verbose code, so be it.

> and it also interestingly points out that tmp/low_addr should be a
> phys_addr_t, not a phys_size_t.

The original code already contains trivial 'tmp = start' assignment, so 
these two types should match, and they don't. Fixed in V4, thanks.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-03-26 22:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-18 15:00 [PATCH v2 1/4] boot: fdt: Change type of env_get_bootm_low() to phys_addr_t Marek Vasut
2024-03-18 15:00 ` [PATCH v2 2/4] boot: fdt: Clean up env_get_bootm_size() Marek Vasut
2024-03-18 16:18   ` Laurent Pinchart
2024-03-20 20:52     ` Marek Vasut
2024-03-20 21:00       ` Laurent Pinchart
2024-03-26 22:19         ` Marek Vasut
2024-03-18 15:00 ` [PATCH v2 3/4] boot: fdt: Drop lmb_alloc*() typecasts Marek Vasut
2024-03-18 16:20   ` Laurent Pinchart
2024-03-18 15:00 ` [PATCH v2 4/4] boot: fdt: Move usable variable below updated comment Marek Vasut

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox