mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 07:33:19 +02:00
irqchip: Have CONFIG_IRQ_MSI_IOMMU be selected by irqchips that need it
Currently, IRQ_MSI_IOMMU is selected if DMA_IOMMU is available to provide an implementation for iommu_dma_prepare/compose_msi_msg(). However, it'll make more sense for irqchips that call prepare/compose to select it, and that will trigger all the additional code and data to be compiled into the kernel. If IRQ_MSI_IOMMU is selected with no IOMMU side implementation, then the prepare/compose() will be NOP stubs. If IRQ_MSI_IOMMU is not selected by an irqchip, then the related code on the iommu side is compiled out. Link: https://patch.msgid.link/r/a2620f67002c5cdf974e89ca3bf905f5c0817be6.1740014950.git.nicolinc@nvidia.com Signed-off-by: Nicolin Chen <nicolinc@nvidia.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
288683c92b
commit
96093fe54f
|
|
@ -154,7 +154,6 @@ config IOMMU_DMA
|
|||
select DMA_OPS_HELPERS
|
||||
select IOMMU_API
|
||||
select IOMMU_IOVA
|
||||
select IRQ_MSI_IOMMU
|
||||
select NEED_SG_DMA_LENGTH
|
||||
select NEED_SG_DMA_FLAGS if SWIOTLB
|
||||
|
||||
|
|
|
|||
|
|
@ -449,8 +449,10 @@ void iommu_put_dma_cookie(struct iommu_domain *domain)
|
|||
struct iommu_dma_cookie *cookie = domain->iova_cookie;
|
||||
struct iommu_dma_msi_page *msi, *tmp;
|
||||
|
||||
#if IS_ENABLED(CONFIG_IRQ_MSI_IOMMU)
|
||||
if (domain->sw_msi != iommu_dma_sw_msi)
|
||||
return;
|
||||
#endif
|
||||
|
||||
if (!cookie)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ config ARM_GIC_V2M
|
|||
select ARM_GIC
|
||||
select IRQ_MSI_LIB
|
||||
select PCI_MSI
|
||||
select IRQ_MSI_IOMMU
|
||||
|
||||
config GIC_NON_BANKED
|
||||
bool
|
||||
|
|
@ -38,12 +39,14 @@ config ARM_GIC_V3
|
|||
select PARTITION_PERCPU
|
||||
select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
|
||||
select HAVE_ARM_SMCCC_DISCOVERY
|
||||
select IRQ_MSI_IOMMU
|
||||
|
||||
config ARM_GIC_V3_ITS
|
||||
bool
|
||||
select GENERIC_MSI_IRQ
|
||||
select IRQ_MSI_LIB
|
||||
default ARM_GIC_V3
|
||||
select IRQ_MSI_IOMMU
|
||||
|
||||
config ARM_GIC_V3_ITS_FSL_MC
|
||||
bool
|
||||
|
|
@ -408,6 +411,7 @@ config LS_EXTIRQ
|
|||
|
||||
config LS_SCFG_MSI
|
||||
def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE
|
||||
select IRQ_MSI_IOMMU
|
||||
depends on PCI_MSI
|
||||
|
||||
config PARTITION_PERCPU
|
||||
|
|
|
|||
|
|
@ -100,6 +100,7 @@ config GENERIC_MSI_IRQ
|
|||
bool
|
||||
select IRQ_DOMAIN_HIERARCHY
|
||||
|
||||
# irqchip drivers should select this if they call iommu_dma_prepare_msi()
|
||||
config IRQ_MSI_IOMMU
|
||||
bool
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user