[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v13 06/10] virtio-iommu: Implement fault reporting
From: |
Peter Xu |
Subject: |
Re: [PATCH v13 06/10] virtio-iommu: Implement fault reporting |
Date: |
Mon, 3 Feb 2020 08:55:03 -0500 |
On Sat, Jan 25, 2020 at 06:19:51PM +0100, Eric Auger wrote:
[...]
> +static void virtio_iommu_report_fault(VirtIOIOMMU *viommu, uint8_t reason,
> + int flags, uint32_t endpoint,
> + uint64_t address)
> +{
> + VirtIODevice *vdev = &viommu->parent_obj;
> + VirtQueue *vq = viommu->event_vq;
> + struct virtio_iommu_fault fault;
> + VirtQueueElement *elem;
> + size_t sz;
> +
> + memset(&fault, 0, sizeof(fault));
> + fault.reason = reason;
> + fault.flags = cpu_to_le32(flags);
> + fault.endpoint = cpu_to_le32(endpoint);
> + fault.address = cpu_to_le64(address);
> +
> + for (;;) {
> + elem = virtqueue_pop(vq, sizeof(VirtQueueElement));
> +
> + if (!elem) {
> + error_report_once(
> + "no buffer available in event queue to report event");
> + return;
> + }
> +
> + if (iov_size(elem->in_sg, elem->in_num) < sizeof(fault)) {
> + virtio_error(vdev, "error buffer of wrong size");
> + virtqueue_detach_element(vq, elem, 0);
> + g_free(elem);
> + return;
> + }
> + break;
This for loop is not needed any more? Other than that:
Reviewed-by: Peter Xu <address@hidden>
--
Peter Xu
- Re: [PATCH v13 06/10] virtio-iommu: Implement fault reporting,
Peter Xu <=