@@ -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;
}
@@ -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);
}
@@ -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 )
@@ -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 )
{
@@ -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();
}
@@ -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