|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 1/2] x86/IOMMU: address violations of MISRA C:2012 Rule 14.4
On Wed, 13 Dec 2023, Simone Ballarin wrote:
> From: Maria Celeste Cesario <maria.celeste.cesario@xxxxxxxxxxx>
>
> 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.
> No functional change.
>
> Signed-off-by: Maria Celeste Cesario <maria.celeste.cesario@xxxxxxxxxxx>
> Signed-off-by: Simone Ballarin <simone.ballarin@xxxxxxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
However it needs an ack from an x86 maintainer
> ---
> Changes in v2
> - rename prefix from AMD/IOMMU to x86/IOMMU
> - move changes on msi.c and hpet.c in this patch.
> ---
> xen/arch/x86/hpet.c | 6 +++---
> xen/arch/x86/msi.c | 4 ++--
> xen/drivers/passthrough/amd/iommu_init.c | 4 ++--
> xen/drivers/passthrough/vtd/iommu.c | 4 ++--
> xen/drivers/passthrough/vtd/quirks.c | 2 +-
> 5 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
> index 7be26c6a9b..d1ddc8ddf6 100644
> --- a/xen/arch/x86/hpet.c
> +++ b/xen/arch/x86/hpet.c
> @@ -279,7 +279,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);
>
> @@ -353,7 +353,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);
> @@ -372,7 +372,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 7f8e794254..72dce2e4ab 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 5515cb70fd..e02a09a9a7 100644
> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -1480,7 +1480,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);
>
> @@ -1498,7 +1498,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 e13b7d99db..bd6d69a6f5 100644
> --- a/xen/drivers/passthrough/vtd/iommu.c
> +++ b/xen/drivers/passthrough/vtd/iommu.c
> @@ -2543,7 +2543,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++ )
> @@ -2559,7 +2559,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();
> }
>
> --
> 2.40.0
>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |