qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] vhost: fix log base address


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] vhost: fix log base address
Date: Thu, 16 Apr 2015 23:26:54 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0


On 15/04/2015 11:56, zhanghailiang wrote:
> On 2015/4/15 17:37, Michael S. Tsirkin wrote:
>> VHOST_SET_LOG_BASE got an incorrect address, causing
>> migration errors and potentially even memory corruption.
>>
>> Cc: Peter Maydell <address@hidden>
>> Reported-by: Wen Congyang <address@hidden>
>> Signed-off-by: Michael S. Tsirkin <address@hidden>
>> ---
>>
>> Could you please confirm this fixes the problem for you?
>>
>>   hw/virtio/vhost.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
>> index 8dd2f59..02c5604 100644
>> --- a/hw/virtio/vhost.c
>> +++ b/hw/virtio/vhost.c
>> @@ -1016,10 +1016,13 @@ int vhost_dev_start(struct vhost_dev *hdev,
>> VirtIODevice *vdev)
>>       }
>>
>>       if (hdev->log_enabled) {
>> +        uint64_t log_base;
>> +
>>           hdev->log_size = vhost_get_log_size(hdev);
>>           hdev->log = hdev->log_size ?
>>               g_malloc0(hdev->log_size * sizeof *hdev->log) : NULL;
>> -        r = hdev->vhost_ops->vhost_call(hdev, VHOST_SET_LOG_BASE,
>> hdev->log);
>> +        log_base = (uint64_t)(unsigned long)log_base;
>                                                ^^^^^^^^
> 
> s/log_base/hdev->log ?

Also s/unsigned long/uintptr_t/ please.  The subsequent cast to uint64_t
is not necessary.

Paolo

>> +        r = hdev->vhost_ops->vhost_call(hdev, VHOST_SET_LOG_BASE,
>> &log_base);
>>           if (r < 0) {
>>               r = -errno;
>>               goto fail_log;
>>
> 
> 
> 
> 



reply via email to

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