@@ -500,8 +500,9 @@ static void iommu_enable_irq_remapping(struct intel_iommu *iommu)
500
500
static int intel_setup_irq_remapping (struct intel_iommu * iommu )
501
501
{
502
502
struct ir_table * ir_table ;
503
- struct page * pages ;
503
+ struct fwnode_handle * fn ;
504
504
unsigned long * bitmap ;
505
+ struct page * pages ;
505
506
506
507
if (iommu -> ir_table )
507
508
return 0 ;
@@ -525,15 +526,24 @@ static int intel_setup_irq_remapping(struct intel_iommu *iommu)
525
526
goto out_free_pages ;
526
527
}
527
528
528
- iommu -> ir_domain = irq_domain_add_hierarchy (arch_get_ir_parent_domain (),
529
- 0 , INTR_REMAP_TABLE_ENTRIES ,
530
- NULL , & intel_ir_domain_ops ,
531
- iommu );
529
+ fn = irq_domain_alloc_named_id_fwnode ("INTEL-IR" , iommu -> seq_id );
530
+ if (!fn )
531
+ goto out_free_bitmap ;
532
+
533
+ iommu -> ir_domain =
534
+ irq_domain_create_hierarchy (arch_get_ir_parent_domain (),
535
+ 0 , INTR_REMAP_TABLE_ENTRIES ,
536
+ fn , & intel_ir_domain_ops ,
537
+ iommu );
538
+ irq_domain_free_fwnode (fn );
532
539
if (!iommu -> ir_domain ) {
533
540
pr_err ("IR%d: failed to allocate irqdomain\n" , iommu -> seq_id );
534
541
goto out_free_bitmap ;
535
542
}
536
- iommu -> ir_msi_domain = arch_create_msi_irq_domain (iommu -> ir_domain );
543
+ iommu -> ir_msi_domain =
544
+ arch_create_remap_msi_irq_domain (iommu -> ir_domain ,
545
+ "INTEL-IR-MSI" ,
546
+ iommu -> seq_id );
537
547
538
548
ir_table -> base = page_address (pages );
539
549
ir_table -> bitmap = bitmap ;
0 commit comments