[PATCH] hw/arm/boot: Use the IEC binary prefix definitions

Philippe Mathieu-Daudé posted 1 patch 4 years, 7 months ago
Test docker-clang@ubuntu passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
Test checkpatch passed
Test asan passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190921103405.19623-1-philmd@redhat.com
Maintainers: Peter Maydell <peter.maydell@linaro.org>
There is a newer version of this series
hw/arm/boot.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
[PATCH] hw/arm/boot: Use the IEC binary prefix definitions
Posted by Philippe Mathieu-Daudé 4 years, 7 months ago
IEC binary prefixes ease code review: the unit is explicit.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/arm/boot.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index bf97ef3e33..59bb2fa0d3 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -1095,7 +1095,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
      * we might still make a bad choice here.
      */
     info->initrd_start = info->loader_start +
-        MIN(info->ram_size / 2, 128 * 1024 * 1024);
+        MIN(info->ram_size / 2, 128 * MiB);
     if (image_high_addr) {
         info->initrd_start = MAX(info->initrd_start, image_high_addr);
     }
@@ -1155,13 +1155,13 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
                  *
                  * Let's play safe and prealign it to 2MB to give us some space.
                  */
-                align = 2 * 1024 * 1024;
+                align = 2 * MiB;
             } else {
                 /*
                  * Some 32bit kernels will trash anything in the 4K page the
                  * initrd ends in, so make sure the DTB isn't caught up in that.
                  */
-                align = 4096;
+                align = 4 * KiB;
             }
 
             /* Place the DTB after the initrd in memory with alignment. */
@@ -1178,7 +1178,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
                 info->loader_start + KERNEL_ARGS_ADDR;
             fixupcontext[FIXUP_ARGPTR_HI] =
                 (info->loader_start + KERNEL_ARGS_ADDR) >> 32;
-            if (info->ram_size >= (1ULL << 32)) {
+            if (info->ram_size >= 4 * GiB) {
                 error_report("RAM size must be less than 4GB to boot"
                              " Linux kernel using ATAGS (try passing a device tree"
                              " using -dtb)");
-- 
2.20.1


Re: [PATCH] hw/arm/boot: Use the IEC binary prefix definitions
Posted by Stefano Garzarella 4 years, 6 months ago
On Sat, Sep 21, 2019 at 12:34:04PM +0200, Philippe Mathieu-Daudé wrote:
> IEC binary prefixes ease code review: the unit is explicit.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/arm/boot.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
> index bf97ef3e33..59bb2fa0d3 100644
> --- a/hw/arm/boot.c
> +++ b/hw/arm/boot.c

Very appreciated!

What about fixing also this other line?

@@ -575,7 +575,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo,
         goto fail;
     }
 
-    if (scells < 2 && binfo->ram_size >= (1ULL << 32)) {
+    if (scells < 2 && binfo->ram_size >= 4 * GiB) {
         /* This is user error so deserves a friendlier error message
          * than the failure of setprop_sized_cells would provide


> @@ -1095,7 +1095,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
>       * we might still make a bad choice here.
>       */
>      info->initrd_start = info->loader_start +
> -        MIN(info->ram_size / 2, 128 * 1024 * 1024);
> +        MIN(info->ram_size / 2, 128 * MiB);
>      if (image_high_addr) {
>          info->initrd_start = MAX(info->initrd_start, image_high_addr);
>      }
> @@ -1155,13 +1155,13 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
>                   *
>                   * Let's play safe and prealign it to 2MB to give us some space.
>                   */
> -                align = 2 * 1024 * 1024;
> +                align = 2 * MiB;
>              } else {
>                  /*
>                   * Some 32bit kernels will trash anything in the 4K page the
>                   * initrd ends in, so make sure the DTB isn't caught up in that.
>                   */
> -                align = 4096;
> +                align = 4 * KiB;
>              }
>  
>              /* Place the DTB after the initrd in memory with alignment. */
> @@ -1178,7 +1178,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
>                  info->loader_start + KERNEL_ARGS_ADDR;
>              fixupcontext[FIXUP_ARGPTR_HI] =
>                  (info->loader_start + KERNEL_ARGS_ADDR) >> 32;
> -            if (info->ram_size >= (1ULL << 32)) {
> +            if (info->ram_size >= 4 * GiB) {
>                  error_report("RAM size must be less than 4GB to boot"
>                               " Linux kernel using ATAGS (try passing a device tree"
>                               " using -dtb)");

With or without the new line fix:

Acked-by: Stefano Garzarella <sgarzare@redhat.com>

Thanks,
Stefano

Re: [PATCH] hw/arm/boot: Use the IEC binary prefix definitions
Posted by Philippe Mathieu-Daudé 4 years, 6 months ago
On 9/23/19 10:29 AM, Stefano Garzarella wrote:
> On Sat, Sep 21, 2019 at 12:34:04PM +0200, Philippe Mathieu-Daudé wrote:
>> IEC binary prefixes ease code review: the unit is explicit.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> ---
>>  hw/arm/boot.c | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
>> index bf97ef3e33..59bb2fa0d3 100644
>> --- a/hw/arm/boot.c
>> +++ b/hw/arm/boot.c
> 
> Very appreciated!
> 
> What about fixing also this other line?
> 
> @@ -575,7 +575,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo,
>          goto fail;
>      }
>  
> -    if (scells < 2 && binfo->ram_size >= (1ULL << 32)) {
> +    if (scells < 2 && binfo->ram_size >= 4 * GiB) {

Good idea!

>          /* This is user error so deserves a friendlier error message
>           * than the failure of setprop_sized_cells would provide
> 
> 
>> @@ -1095,7 +1095,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
>>       * we might still make a bad choice here.
>>       */
>>      info->initrd_start = info->loader_start +
>> -        MIN(info->ram_size / 2, 128 * 1024 * 1024);
>> +        MIN(info->ram_size / 2, 128 * MiB);
>>      if (image_high_addr) {
>>          info->initrd_start = MAX(info->initrd_start, image_high_addr);
>>      }
>> @@ -1155,13 +1155,13 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
>>                   *
>>                   * Let's play safe and prealign it to 2MB to give us some space.
>>                   */
>> -                align = 2 * 1024 * 1024;
>> +                align = 2 * MiB;
>>              } else {
>>                  /*
>>                   * Some 32bit kernels will trash anything in the 4K page the
>>                   * initrd ends in, so make sure the DTB isn't caught up in that.
>>                   */
>> -                align = 4096;
>> +                align = 4 * KiB;
>>              }
>>  
>>              /* Place the DTB after the initrd in memory with alignment. */
>> @@ -1178,7 +1178,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
>>                  info->loader_start + KERNEL_ARGS_ADDR;
>>              fixupcontext[FIXUP_ARGPTR_HI] =
>>                  (info->loader_start + KERNEL_ARGS_ADDR) >> 32;
>> -            if (info->ram_size >= (1ULL << 32)) {
>> +            if (info->ram_size >= 4 * GiB) {
>>                  error_report("RAM size must be less than 4GB to boot"
>>                               " Linux kernel using ATAGS (try passing a device tree"
>>                               " using -dtb)");
> 
> With or without the new line fix:
> 
> Acked-by: Stefano Garzarella <sgarzare@redhat.com>

Did you mean Reviewed-by?

Regards,

Phil.

Re: [PATCH] hw/arm/boot: Use the IEC binary prefix definitions
Posted by Stefano Garzarella 4 years, 6 months ago
On Mon, Sep 23, 2019 at 10:43:12AM +0200, Philippe Mathieu-Daudé wrote:
> On 9/23/19 10:29 AM, Stefano Garzarella wrote:
> > On Sat, Sep 21, 2019 at 12:34:04PM +0200, Philippe Mathieu-Daudé wrote:
> >> IEC binary prefixes ease code review: the unit is explicit.
> >>
> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> >> ---
> >>  hw/arm/boot.c | 8 ++++----
> >>  1 file changed, 4 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
> >> index bf97ef3e33..59bb2fa0d3 100644
> >> --- a/hw/arm/boot.c
> >> +++ b/hw/arm/boot.c
> > 
> > Very appreciated!
> > 
> > What about fixing also this other line?
> > 
> > @@ -575,7 +575,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo,
> >          goto fail;
> >      }
> >  
> > -    if (scells < 2 && binfo->ram_size >= (1ULL << 32)) {
> > +    if (scells < 2 && binfo->ram_size >= 4 * GiB) {
> 
> Good idea!
> 
> >          /* This is user error so deserves a friendlier error message
> >           * than the failure of setprop_sized_cells would provide
> > 
> > 
> >> @@ -1095,7 +1095,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
> >>       * we might still make a bad choice here.
> >>       */
> >>      info->initrd_start = info->loader_start +
> >> -        MIN(info->ram_size / 2, 128 * 1024 * 1024);
> >> +        MIN(info->ram_size / 2, 128 * MiB);
> >>      if (image_high_addr) {
> >>          info->initrd_start = MAX(info->initrd_start, image_high_addr);
> >>      }
> >> @@ -1155,13 +1155,13 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
> >>                   *
> >>                   * Let's play safe and prealign it to 2MB to give us some space.
> >>                   */
> >> -                align = 2 * 1024 * 1024;
> >> +                align = 2 * MiB;
> >>              } else {
> >>                  /*
> >>                   * Some 32bit kernels will trash anything in the 4K page the
> >>                   * initrd ends in, so make sure the DTB isn't caught up in that.
> >>                   */
> >> -                align = 4096;
> >> +                align = 4 * KiB;
> >>              }
> >>  
> >>              /* Place the DTB after the initrd in memory with alignment. */
> >> @@ -1178,7 +1178,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
> >>                  info->loader_start + KERNEL_ARGS_ADDR;
> >>              fixupcontext[FIXUP_ARGPTR_HI] =
> >>                  (info->loader_start + KERNEL_ARGS_ADDR) >> 32;
> >> -            if (info->ram_size >= (1ULL << 32)) {
> >> +            if (info->ram_size >= 4 * GiB) {
> >>                  error_report("RAM size must be less than 4GB to boot"
> >>                               " Linux kernel using ATAGS (try passing a device tree"
> >>                               " using -dtb)");
> > 
> > With or without the new line fix:
> > 
> > Acked-by: Stefano Garzarella <sgarzare@redhat.com>
> 
> Did you mean Reviewed-by?

Yes, sorry! :-)

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>


Re: [PATCH] hw/arm/boot: Use the IEC binary prefix definitions
Posted by Thomas Huth 4 years, 6 months ago
On 21/09/2019 12.34, Philippe Mathieu-Daudé wrote:
> IEC binary prefixes ease code review: the unit is explicit.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/arm/boot.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
> index bf97ef3e33..59bb2fa0d3 100644
> --- a/hw/arm/boot.c
> +++ b/hw/arm/boot.c
> @@ -1095,7 +1095,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
>       * we might still make a bad choice here.
>       */
>      info->initrd_start = info->loader_start +
> -        MIN(info->ram_size / 2, 128 * 1024 * 1024);
> +        MIN(info->ram_size / 2, 128 * MiB);
>      if (image_high_addr) {
>          info->initrd_start = MAX(info->initrd_start, image_high_addr);
>      }
> @@ -1155,13 +1155,13 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
>                   *
>                   * Let's play safe and prealign it to 2MB to give us some space.
>                   */
> -                align = 2 * 1024 * 1024;
> +                align = 2 * MiB;
>              } else {
>                  /*
>                   * Some 32bit kernels will trash anything in the 4K page the
>                   * initrd ends in, so make sure the DTB isn't caught up in that.
>                   */
> -                align = 4096;
> +                align = 4 * KiB;
>              }
>  
>              /* Place the DTB after the initrd in memory with alignment. */
> @@ -1178,7 +1178,7 @@ static void arm_setup_direct_kernel_boot(ARMCPU *cpu,
>                  info->loader_start + KERNEL_ARGS_ADDR;
>              fixupcontext[FIXUP_ARGPTR_HI] =
>                  (info->loader_start + KERNEL_ARGS_ADDR) >> 32;
> -            if (info->ram_size >= (1ULL << 32)) {
> +            if (info->ram_size >= 4 * GiB) {
>                  error_report("RAM size must be less than 4GB to boot"
>                               " Linux kernel using ATAGS (try passing a device tree"
>                               " using -dtb)");
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

Re: [PATCH] hw/arm/boot: Use the IEC binary prefix definitions
Posted by Richard Henderson 4 years, 7 months ago
On 9/21/19 3:34 AM, Philippe Mathieu-Daudé wrote:
> IEC binary prefixes ease code review: the unit is explicit.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/arm/boot.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~