IOMMU/x86: tidy adjust_irq_affinities hook

As of 3e56754b08 ("xen/cet: Fix __initconst_cf_clobber") there's no
need for a non-void return value anymore, as the hook functions are no
longer themselves passed to __initcall(). For the same reason the
iommu_enabled checks can now move from the individual functions to the
wrapper.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
This commit is contained in:
Jan Beulich committed 2022-03-14 10:32:40 +01:00
1 parent 7b4b36fcba
commit e2589ef652
6 files changed
+10 -19

No files matched your search

+3 -4
View File
@@ -101,11 +101,10 @@ void iommu_update_ire_from_apic(unsigned int apic, unsigned int reg, unsigned in
unsigned int iommu_read_apic_from_ire(unsigned int apic, unsigned int reg);
int iommu_setup_hpet_msi(struct msi_desc *);
static inline int iommu_adjust_irq_affinities(void)
static inline void iommu_adjust_irq_affinities(void)
{
return iommu_ops.adjust_irq_affinities
? iommu_call(&iommu_ops, adjust_irq_affinities)
: 0;
if ( iommu_enabled && iommu_ops.adjust_irq_affinities )
iommu_vcall(&iommu_ops, adjust_irq_affinities);
}
static inline bool iommu_supports_x2apic(void)
+1 -1
View File
@@ -234,7 +234,7 @@ int amd_iommu_prepare(bool xt);
int amd_iommu_init(bool xt);
int amd_iommu_init_late(void);
int amd_iommu_update_ivrs_mapping_acpi(void);
int cf_check iov_adjust_irq_affinities(void);
void cf_check iov_adjust_irq_affinities(void);
int cf_check amd_iommu_quarantine_init(struct domain *d);
+1 -6
View File
@@ -809,13 +809,10 @@ static bool_t __init set_iommu_interrupt_handler(struct amd_iommu *iommu)
return 1;
}
int cf_check iov_adjust_irq_affinities(void)
void cf_check iov_adjust_irq_affinities(void)
{
const struct amd_iommu *iommu;
if ( !iommu_enabled )
return 0;
for_each_amd_iommu ( iommu )
{
struct irq_desc *desc = irq_to_desc(iommu->msi.irq);
@@ -828,8 +825,6 @@ int cf_check iov_adjust_irq_affinities(void)
set_msi_affinity(desc, NULL);
spin_unlock_irqrestore(&desc->lock, flags);
}
return 0;
}
/*
+1 -6
View File
@@ -2107,17 +2107,12 @@ static void adjust_irq_affinity(struct acpi_drhd_unit *drhd)
spin_unlock_irqrestore(&desc->lock, flags);
}
static int cf_check adjust_vtd_irq_affinities(void)
static void cf_check adjust_vtd_irq_affinities(void)
{
struct acpi_drhd_unit *drhd;
if ( !iommu_enabled )
return 0;
for_each_drhd_unit ( drhd )
adjust_irq_affinity(drhd);
return 0;
}
static int __must_check init_vtd_hw(bool resume)
+3 -1
View File
@@ -464,7 +464,9 @@ bool arch_iommu_use_permitted(const struct domain *d)
static int __init cf_check adjust_irq_affinities(void)
{
return iommu_adjust_irq_affinities();
iommu_adjust_irq_affinities();
return 0;
}
__initcall(adjust_irq_affinities);
+1 -1
View File
@@ -267,7 +267,7 @@ struct iommu_ops {
int (*setup_hpet_msi)(struct msi_desc *);
int (*adjust_irq_affinities)(void);
void (*adjust_irq_affinities)(void);
void (*clear_root_pgtable)(struct domain *d);
int (*update_ire_from_msi)(struct msi_desc *msi_desc, struct msi_msg *msg);
#endif /* CONFIG_X86 */
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.