diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c index 0759eae055..2f54d31889 100644 --- a/xen/arch/x86/hpet.c +++ b/xen/arch/x86/hpet.c @@ -278,7 +278,7 @@ static int hpet_msi_write(struct hpet_event_channel *ch, struct msi_msg *msg) { ch->msi.msg = *msg; - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) { int rc = iommu_update_ire_from_msi(&ch->msi, msg); @@ -352,7 +352,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch) u32 cfg = hpet_read32(HPET_Tn_CFG(ch->idx)); irq_desc_t *desc = irq_to_desc(ch->msi.irq); - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) { ch->msi.hpet_id = hpet_blockid; ret = iommu_setup_hpet_msi(&ch->msi); @@ -371,7 +371,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch) ret = __hpet_setup_msi_irq(desc); if ( ret < 0 ) { - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) iommu_update_ire_from_msi(&ch->msi, NULL); return ret; } diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c index e721aaf5c0..3009ce109f 100644 --- a/xen/arch/x86/msi.c +++ b/xen/arch/x86/msi.c @@ -189,7 +189,7 @@ static int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg) { entry->msg = *msg; - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) { int rc; @@ -555,7 +555,7 @@ int msi_free_irq(struct msi_desc *entry) destroy_irq(entry[nr].irq); /* Free the unused IRTE if intr remap enabled */ - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) iommu_update_ire_from_msi(entry + nr, NULL); } diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c index 358c8cbad9..6c0dc2d5cb 100644 --- a/xen/drivers/passthrough/amd/iommu_init.c +++ b/xen/drivers/passthrough/amd/iommu_init.c @@ -1483,7 +1483,7 @@ int __init amd_iommu_init(bool xt) goto error_out; } - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) register_keyhandler('V', &amd_iommu_dump_intremap_tables, "dump IOMMU intremap tables", 0); @@ -1501,7 +1501,7 @@ int __init amd_iommu_init_late(void) /* Further initialize the device table(s). */ pci_init = true; - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) rc = iterate_ivrs_mappings(amd_iommu_setup_device_table); for_each_amd_iommu ( iommu ) diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c index c7110af7c9..e13be244c1 100644 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -2540,7 +2540,7 @@ static int __must_check init_vtd_hw(bool resume) /* * Enable interrupt remapping */ - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) { int apic; for ( apic = 0; apic < nr_ioapics; apic++ ) @@ -2556,7 +2556,7 @@ static int __must_check init_vtd_hw(bool resume) } } } - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) { for_each_drhd_unit ( drhd ) { diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c index 5a56565ea8..950dcd56ef 100644 --- a/xen/drivers/passthrough/vtd/quirks.c +++ b/xen/drivers/passthrough/vtd/quirks.c @@ -392,7 +392,7 @@ void __init platform_quirks_init(void) map_igd_reg(); /* Tylersburg interrupt remap quirk */ - if ( iommu_intremap ) + if ( iommu_intremap != iommu_intremap_off ) tylersburg_intremap_quirk(); } diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h index 92db6f124f..442ae5322d 100644 --- a/xen/include/xen/iommu.h +++ b/xen/include/xen/iommu.h @@ -60,10 +60,6 @@ extern uint8_t iommu_quarantine; #ifdef CONFIG_X86 extern enum __packed iommu_intremap { - /* - * In order to allow traditional boolean uses of the iommu_intremap - * variable, the "off" value has to come first (yielding a value of zero). - */ iommu_intremap_off, /* * Interrupt remapping enabled, but only able to generate interrupts