qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-trivial] [Qemu-devel] [PATCH 1/1] virtio-rng: fix condition ch


From: Laszlo Ersek
Subject: Re: [Qemu-trivial] [Qemu-devel] [PATCH 1/1] virtio-rng: fix condition checking on period_ms
Date: Fri, 19 Feb 2016 21:59:19 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0

On 02/19/16 21:57, Laszlo Ersek wrote:
> On 02/19/16 19:13, Wei Huang wrote:
>> The condition checking on vrng->conf.period_ms appears to be wrong,
>> conflicting with the error comment following it.
>>
>> Signed-off-by: Wei Huang <address@hidden>
>> ---
>>  hw/virtio/virtio-rng.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c
>> index 473c044..a06427c 100644
>> --- a/hw/virtio/virtio-rng.c
>> +++ b/hw/virtio/virtio-rng.c
>> @@ -149,7 +149,7 @@ static void virtio_rng_device_realize(DeviceState *dev, 
>> Error **errp)
>>      VirtIORNG *vrng = VIRTIO_RNG(dev);
>>      Error *local_err = NULL;
>>  
>> -    if (!vrng->conf.period_ms > 0) {
>> +    if (!(vrng->conf.period_ms > 0)) {
>>          error_setg(errp, "'period' parameter expects a positive integer");
>>          return;
>>      }
>>
> 
> The current condition is absolutely weird, but I think it happens to
> work correctly:
> 
> Period_ms has type uint32_t. If it is positive, then !period_ms is zero.
> 0>0 is false, hence the error message is not printed.
> 
> If period_ms is zero, then !period_ms is 1. 1>0 is true, hence the error
> message is printed.
> 
> I would rewrite the check as
> 
>     if (vrng->conf.period_ms == 0) {
>         error_setg(...)

... actually, what the heck are you looking at? :) This has been fixed
up in:

commit a3a292c420d2fec3c07a7ca56fbb064cd57a298a
Author: Amit Shah <address@hidden>
Date:   Thu Dec 11 13:17:42 2014 +0530

    virtio-rng: fix check for period_ms validity

Thanks
Laszlo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]