[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] vhost: Use vbus var instead of VIRTIO_BUS() mac
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] vhost: Use vbus var instead of VIRTIO_BUS() macro |
Date: |
Wed, 9 Nov 2016 16:54:57 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
On 09/11/2016 16:47, Michael S. Tsirkin wrote:
> On Wed, Nov 09, 2016 at 02:22:42PM +0100, Paolo Bonzini wrote:
>>
>>
>> On 09/11/2016 14:18, Felipe Franciosi wrote:
>>> Recent changes on vhost_dev_enable/disable_notifiers() produced a
>>> VirtioBusState vbus variable which can be used instead of the
>>> VIRTIO_BUS() macro. This commit just makes the code a little bit cleaner
>>> and more consistent.
>>>
>>> Signed-off-by: Felipe Franciosi <address@hidden>
>>
>> Michael, what do you think? Perhaps it's simplest to just squash the
>> two patches (v2 of "vhost: Update 'ioeventfd_started' with host
>> notifiers" and this one).
>>
>> Paolo
>
> I think I'll apply both but why bother squashing?
Just because
VIRTIO_BUS(qbus)->ioeventfd_started = true;
from the first patch is ugly. :)
Paolo
>>> ---
>>> hw/virtio/vhost.c | 14 ++++++--------
>>> 1 file changed, 6 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
>>> index 1290963..7d29dad 100644
>>> --- a/hw/virtio/vhost.c
>>> +++ b/hw/virtio/vhost.c
>>> @@ -1198,20 +1198,18 @@ int vhost_dev_enable_notifiers(struct vhost_dev
>>> *hdev, VirtIODevice *vdev)
>>>
>>> virtio_device_stop_ioeventfd(vdev);
>>> for (i = 0; i < hdev->nvqs; ++i) {
>>> - r = virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), hdev->vq_index
>>> + i,
>>> - true);
>>> + r = virtio_bus_set_host_notifier(vbus, hdev->vq_index + i, true);
>>> if (r < 0) {
>>> error_report("vhost VQ %d notifier binding failed: %d", i, -r);
>>> goto fail_vq;
>>> }
>>> }
>>> - VIRTIO_BUS(qbus)->ioeventfd_started = true;
>>> + vbus->ioeventfd_started = true;
>>>
>>> return 0;
>>> fail_vq:
>>> while (--i >= 0) {
>>> - e = virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), hdev->vq_index
>>> + i,
>>> - false);
>>> + e = virtio_bus_set_host_notifier(vbus, hdev->vq_index + i, false);
>>> if (e < 0) {
>>> error_report("vhost VQ %d notifier cleanup error: %d", i, -r);
>>> }
>>> @@ -1230,17 +1228,17 @@ fail:
>>> void vhost_dev_disable_notifiers(struct vhost_dev *hdev, VirtIODevice
>>> *vdev)
>>> {
>>> BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vdev)));
>>> + VirtioBusState *vbus = VIRTIO_BUS(qbus);
>>> int i, r;
>>>
>>> for (i = 0; i < hdev->nvqs; ++i) {
>>> - r = virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), hdev->vq_index
>>> + i,
>>> - false);
>>> + r = virtio_bus_set_host_notifier(vbus, hdev->vq_index + i, false);
>>> if (r < 0) {
>>> error_report("vhost VQ %d notifier cleanup failed: %d", i, -r);
>>> }
>>> assert (r >= 0);
>>> }
>>> - VIRTIO_BUS(qbus)->ioeventfd_started = false;
>>> + vbus->ioeventfd_started = false;
>>> virtio_device_start_ioeventfd(vdev);
>>> }
>>>
>>>