x86/IOMMU: address violations of MISRA C:2012 Rule 14.4

The xen sources contain violations of MISRA C:2012 Rule 14.4 whose
headline states:
"The controlling expression of an if statement and the controlling
expression of an iteration-statement shall have essentially Boolean type".

Add comparisons to avoid using enum constants as controlling expressions
to comply with Rule 14.4.

Amend the comment in the enum definition to reflect the fact that
boolean uses of iommu_intremap are no longer allowed.

No functional change.

Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@bugseng.com>
Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
Maria Celeste Cesario authored and Andrew Cooper committed 2024-05-09 18:19:49 +01:00
1 parent 3d1033c911
commit fcefb2a247
6 files changed
+10 -14

No files matched your search

+3 -3
View File
@@ -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;
}
+2 -2
View File
@@ -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);
}
+2 -2
View File
@@ -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 )
+2 -2
View File
@@ -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 )
{
+1 -1
View File
@@ -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();
}
-4
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.