[Qemu-devel] [PATCH v5] hw/unicore32: remove wrong assertion in puv machine init

Suramya Shah posted 1 patch 6 years, 12 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170330165008.26419-1-shah.suramya@gmail.com
Test checkpatch passed
Test docker passed
Test s390x passed
hw/unicore32/puv3.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
[Qemu-devel] [PATCH v5] hw/unicore32: remove wrong assertion in puv machine init
Posted by Suramya Shah 6 years, 12 months ago

Running QEMU with qemu-system-unicore32 without the kernel parameter results in an assertion error.
Assert should not be used to check user provided parameters. Report an error and exit instead
Signed-off-by: Suramya Shah <shah.suramya@gmail.com>
---
 hw/unicore32/puv3.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/hw/unicore32/puv3.c b/hw/unicore32/puv3.c
index 032078f..2c17cc9 100644
--- a/hw/unicore32/puv3.c
+++ b/hw/unicore32/puv3.c
@@ -93,8 +93,11 @@ static void puv3_load_kernel(const char *kernel_filename)
     if (kernel_filename == NULL && qtest_enabled()) {
         return;
     }
-    assert(kernel_filename != NULL);
-
+    if (kernel_filename == NULL) {
+        error_report("No kernel found");
+        exit(1);
+    }
+
     /* only zImage format supported */
     size = load_image_targphys(kernel_filename, KERNEL_LOAD_ADDR,
             KERNEL_MAX_SIZE);
-- 
2.9.3


Re: [Qemu-devel] [PATCH v5] hw/unicore32: remove wrong assertion in puv machine init
Posted by Marcel Apfelbaum 6 years, 12 months ago
On 03/30/2017 07:50 PM, Suramya Shah wrote:
> Running QEMU with qemu-system-unicore32 without the kernel parameter results in an assertion error.
> Assert should not be used to check user provided parameters. Report an error and exit instead
> Signed-off-by: Suramya Shah <shah.suramya@gmail.com>
> ---
>  hw/unicore32/puv3.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/hw/unicore32/puv3.c b/hw/unicore32/puv3.c
> index 032078f..2c17cc9 100644
> --- a/hw/unicore32/puv3.c
> +++ b/hw/unicore32/puv3.c
> @@ -93,8 +93,11 @@ static void puv3_load_kernel(const char *kernel_filename)
>      if (kernel_filename == NULL && qtest_enabled()) {
>          return;
>      }
> -    assert(kernel_filename != NULL);
> -
> +    if (kernel_filename == NULL) {
> +        error_report("No kernel found");
> +        exit(1);
> +    }
> +
>      /* only zImage format supported */
>      size = load_image_targphys(kernel_filename, KERNEL_LOAD_ADDR,
>              KERNEL_MAX_SIZE);
>

Hi,

The patch looks good to me.

Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>

Thanks,
Marcel

Re: [Qemu-devel] [PATCH v5] hw/unicore32: remove wrong assertion in puv machine init
Posted by Xuetao Guan 6 years, 12 months ago
> On 03/30/2017 07:50 PM, Suramya Shah wrote:
>> Running QEMU with qemu-system-unicore32 without the kernel parameter
>> results in an assertion error.
>> Assert should not be used to check user provided parameters. Report an
>> error and exit instead
>> Signed-off-by: Suramya Shah <shah.suramya@gmail.com>

Thanks Suramya
Acked-by: Guan Xuetao <gxt@mprc.pku.edu.cn>

>> ---
>>  hw/unicore32/puv3.c | 7 +++++--
>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/unicore32/puv3.c b/hw/unicore32/puv3.c
>> index 032078f..2c17cc9 100644
>> --- a/hw/unicore32/puv3.c
>> +++ b/hw/unicore32/puv3.c
>> @@ -93,8 +93,11 @@ static void puv3_load_kernel(const char
>> *kernel_filename)
>>      if (kernel_filename == NULL && qtest_enabled()) {
>>          return;
>>      }
>> -    assert(kernel_filename != NULL);
>> -
>> +    if (kernel_filename == NULL) {
>> +        error_report("No kernel found");
>> +        exit(1);
>> +    }
>> +
>>      /* only zImage format supported */
>>      size = load_image_targphys(kernel_filename, KERNEL_LOAD_ADDR,
>>              KERNEL_MAX_SIZE);
>>
>
> Hi,
>
> The patch looks good to me.
>
> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
>
> Thanks,
> Marcel
>


Re: [Qemu-devel] [PATCH v5] hw/unicore32: remove wrong assertion in puv machine init
Posted by Thomas Huth 6 years, 12 months ago
On 30.03.2017 18:50, Suramya Shah wrote:
> Running QEMU with qemu-system-unicore32 without the kernel parameter results in an assertion error.
> Assert should not be used to check user provided parameters. Report an error and exit instead
> Signed-off-by: Suramya Shah <shah.suramya@gmail.com>

Nit: There should be a blank line between the description and the
"Signed-off-by" line.
And another nit: Since some people are still using 80-columns terminal
windows, it's also nicer to wrap the description at the 80 columns
barrier (or even 76 columns already) instead.

> ---
>  hw/unicore32/puv3.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/unicore32/puv3.c b/hw/unicore32/puv3.c
> index 032078f..2c17cc9 100644
> --- a/hw/unicore32/puv3.c
> +++ b/hw/unicore32/puv3.c
> @@ -93,8 +93,11 @@ static void puv3_load_kernel(const char *kernel_filename)
>      if (kernel_filename == NULL && qtest_enabled()) {
>          return;
>      }
> -    assert(kernel_filename != NULL);
> -
> +    if (kernel_filename == NULL) {
> +        error_report("No kernel found");

It's maybe better to give clear instructions to the user, like:
"Need a kernel, please provide one with the '-kernel' option"

> +        exit(1);
> +    }
> +
>      /* only zImage format supported */
>      size = load_image_targphys(kernel_filename, KERNEL_LOAD_ADDR,
>              KERNEL_MAX_SIZE);
> 

 Thomas