diff options
Diffstat (limited to 'drivers/iommu/irq_remapping.c')
| -rw-r--r-- | drivers/iommu/irq_remapping.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c index ee59647c2050..c2443659812a 100644 --- a/drivers/iommu/irq_remapping.c +++ b/drivers/iommu/irq_remapping.c @@ -24,6 +24,8 @@ int no_x2apic_optout;  int disable_irq_post = 0; +bool enable_posted_msi __ro_after_init; +  static int disable_irq_remap;  static struct irq_remap_ops *remap_ops; @@ -70,7 +72,8 @@ static __init int setup_irqremap(char *str)  			no_x2apic_optout = 1;  		else if (!strncmp(str, "nopost", 6))  			disable_irq_post = 1; - +		else if (IS_ENABLED(CONFIG_X86_POSTED_MSI) && !strncmp(str, "posted_msi", 10)) +			enable_posted_msi = true;  		str += strcspn(str, ",");  		while (*str == ',')  			str++; @@ -151,7 +154,10 @@ int __init irq_remap_enable_fault_handling(void)  	if (!remap_ops->enable_faulting)  		return -ENODEV; -	return remap_ops->enable_faulting(); +	cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "dmar:enable_fault_handling", +			  remap_ops->enable_faulting, NULL); + +	return remap_ops->enable_faulting(smp_processor_id());  }  void panic_if_irq_remap(const char *msg)  |