[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v10 05/26] acpi: enable INTR for DMAR report str
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v10 05/26] acpi: enable INTR for DMAR report structure |
Date: |
Mon, 4 Jul 2016 18:14:41 +0300 |
On Tue, Jun 21, 2016 at 03:47:33PM +0800, Peter Xu wrote:
> In ACPI DMA remapping report structure, enable INTR flag when specified.
>
> Signed-off-by: Peter Xu <address@hidden>
> ---
> hw/i386/acpi-build.c | 11 ++++++++++-
> include/hw/i386/intel_iommu.h | 2 ++
> 2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 161f089..961ccd6a 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -57,6 +57,7 @@
>
> #include "qapi/qmp/qint.h"
> #include "qom/qom-qobject.h"
> +#include "hw/i386/x86-iommu.h"
>
> /* These are used to size the ACPI tables for -M pc-i440fx-1.7 and
> * -M pc-i440fx-2.0. Even if the actual amount of AML generated grows
> @@ -2422,10 +2423,18 @@ build_dmar_q35(GArray *table_data, BIOSLinker *linker)
>
> AcpiTableDmar *dmar;
> AcpiDmarHardwareUnit *drhd;
> + uint8_t dmar_flags = 0;
> + X86IOMMUState *iommu = x86_iommu_get_default();
> +
> + assert(iommu);
> + if (iommu->intr_supported) {
> + /* enable INTR for the IOMMU device */
> + dmar_flags |= DMAR_REPORT_F_INTR;
Please rewrite it: drop DMAR_REPORT_F_INTR macro,
and replace with literal + comment documenting
earliest spec version has it and the exact text
to look for in the spec.
> + }
>
> dmar = acpi_data_push(table_data, sizeof(*dmar));
> dmar->host_address_width = VTD_HOST_ADDRESS_WIDTH - 1;
> - dmar->flags = 0; /* No intr_remap for now */
> + dmar->flags = dmar_flags;
>
> /* DMAR Remapping Hardware Unit Definition structure */
> drhd = acpi_data_push(table_data, sizeof(*drhd));
> diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h
> index e36b896..638d77f 100644
> --- a/include/hw/i386/intel_iommu.h
> +++ b/include/hw/i386/intel_iommu.h
> @@ -44,6 +44,8 @@
> #define VTD_HOST_ADDRESS_WIDTH 39
> #define VTD_HAW_MASK ((1ULL << VTD_HOST_ADDRESS_WIDTH) - 1)
>
> +#define DMAR_REPORT_F_INTR (1)
> +
> typedef struct VTDContextEntry VTDContextEntry;
> typedef struct VTDContextCacheEntry VTDContextCacheEntry;
> typedef struct IntelIOMMUState IntelIOMMUState;
> --
> 2.4.11
- Re: [Qemu-devel] [PATCH v10 05/26] acpi: enable INTR for DMAR report structure,
Michael S. Tsirkin <=