[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] vhost: fix log base address
From: |
Wen Congyang |
Subject: |
Re: [Qemu-devel] [PATCH] vhost: fix log base address |
Date: |
Wed, 15 Apr 2015 18:08:53 +0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
On 04/15/2015 05:56 PM, 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 ?
I test the patch with this modification. It works for me.
Thanks
Wen Congyang
>
>> + r = hdev->vhost_ops->vhost_call(hdev, VHOST_SET_LOG_BASE,
>> &log_base);
>> if (r < 0) {
>> r = -errno;
>> goto fail_log;
>>
>
>
> .
>