[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v7 05/17] intel_iommu: simplify irq region trans
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH v7 05/17] intel_iommu: simplify irq region translation |
Date: |
Fri, 10 Feb 2017 12:15:00 +1100 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
On Tue, Feb 07, 2017 at 04:28:07PM +0800, Peter Xu wrote:
> Now we have a standalone memory region for MSI, all the irq region
> requests should be redirected there. Cleaning up the block with an
> assertion instead.
>
> Reviewed-by: Jason Wang <address@hidden>
> Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: David Gibson <address@hidden>
> ---
> hw/i386/intel_iommu.c | 28 ++++++----------------------
> 1 file changed, 6 insertions(+), 22 deletions(-)
>
> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> index 50251c3..86d19bb 100644
> --- a/hw/i386/intel_iommu.c
> +++ b/hw/i386/intel_iommu.c
> @@ -818,28 +818,12 @@ static void vtd_do_iommu_translate(VTDAddressSpace
> *vtd_as, PCIBus *bus,
> bool writes = true;
> VTDIOTLBEntry *iotlb_entry;
>
> - /* Check if the request is in interrupt address range */
> - if (vtd_is_interrupt_addr(addr)) {
> - if (is_write) {
> - /* FIXME: since we don't know the length of the access here, we
> - * treat Non-DWORD length write requests without PASID as
> - * interrupt requests, too. Withoud interrupt remapping support,
> - * we just use 1:1 mapping.
> - */
> - VTD_DPRINTF(MMU, "write request to interrupt address "
> - "gpa 0x%"PRIx64, addr);
> - entry->iova = addr & VTD_PAGE_MASK_4K;
> - entry->translated_addr = addr & VTD_PAGE_MASK_4K;
> - entry->addr_mask = ~VTD_PAGE_MASK_4K;
> - entry->perm = IOMMU_WO;
> - return;
> - } else {
> - VTD_DPRINTF(GENERAL, "error: read request from interrupt address
> "
> - "gpa 0x%"PRIx64, addr);
> - vtd_report_dmar_fault(s, source_id, addr, VTD_FR_READ, is_write);
> - return;
> - }
> - }
> + /*
> + * We have standalone memory region for interrupt addresses, we
> + * should never receive translation requests in this region.
> + */
> + assert(!vtd_is_interrupt_addr(addr));
> +
> /* Try to fetch slpte form IOTLB */
> iotlb_entry = vtd_lookup_iotlb(s, source_id, addr);
> if (iotlb_entry) {
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- [Qemu-devel] [PATCH v7 00/17] VT-d: vfio enablement and misc enhances, Peter Xu, 2017/02/07
- [Qemu-devel] [PATCH v7 01/17] vfio: trace map/unmap for notify as well, Peter Xu, 2017/02/07
- [Qemu-devel] [PATCH v7 02/17] vfio: introduce vfio_get_vaddr(), Peter Xu, 2017/02/07
- [Qemu-devel] [PATCH v7 03/17] vfio: allow to notify unmap for very large region, Peter Xu, 2017/02/07
- [Qemu-devel] [PATCH v7 05/17] intel_iommu: simplify irq region translation, Peter Xu, 2017/02/07
- Re: [Qemu-devel] [PATCH v7 05/17] intel_iommu: simplify irq region translation,
David Gibson <=
- [Qemu-devel] [PATCH v7 04/17] intel_iommu: add "caching-mode" option, Peter Xu, 2017/02/07
- [Qemu-devel] [PATCH v7 06/17] intel_iommu: renaming gpa to iova where proper, Peter Xu, 2017/02/07
- [Qemu-devel] [PATCH v7 07/17] intel_iommu: convert dbg macros to traces for inv, Peter Xu, 2017/02/07
- [Qemu-devel] [PATCH v7 08/17] intel_iommu: convert dbg macros to trace for trans, Peter Xu, 2017/02/07