mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-27 06:50:37 +00:00

To provide the iommufd_sw_msi() to the iommu core that is under a different Kconfig, move it and its related functions to driver.c. Then, stub it into the iommu-priv header. The iommufd_sw_msi_install() continues to be used by iommufd internal, so put it in the private header. Note that iommufd_sw_msi() will be called in the iommu core, replacing the sw_msi function pointer. Given that IOMMU_API is "bool" in Kconfig, change IOMMUFD_DRIVER_CORE to "bool" as well. Since this affects the module size, here is before-n-after size comparison: [Before] text data bss dec hex filename 18797 848 56 19701 4cf5 drivers/iommu/iommufd/device.o 722 44 0 766 2fe drivers/iommu/iommufd/driver.o [After] text data bss dec hex filename 17735 808 56 18599 48a7 drivers/iommu/iommufd/device.o 3020 180 0 3200 c80 drivers/iommu/iommufd/driver.o Link: https://patch.msgid.link/r/374c159592dba7852bee20968f3f66fa0ee8ca93.1742871535.git.nicolinc@nvidia.com Signed-off-by: Nicolin Chen <nicolinc@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
50 lines
1.6 KiB
Plaintext
50 lines
1.6 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config IOMMUFD_DRIVER_CORE
|
|
bool
|
|
default (IOMMUFD_DRIVER || IOMMUFD) if IOMMUFD!=n
|
|
|
|
config IOMMUFD
|
|
tristate "IOMMU Userspace API"
|
|
select INTERVAL_TREE
|
|
select INTERVAL_TREE_SPAN_ITER
|
|
select IOMMU_API
|
|
default n
|
|
help
|
|
Provides /dev/iommu, the user API to control the IOMMU subsystem as
|
|
it relates to managing IO page tables that point at user space memory.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
if IOMMUFD
|
|
config IOMMUFD_VFIO_CONTAINER
|
|
bool "IOMMUFD provides the VFIO container /dev/vfio/vfio"
|
|
depends on VFIO_GROUP && !VFIO_CONTAINER
|
|
default VFIO_GROUP && !VFIO_CONTAINER
|
|
help
|
|
IOMMUFD will provide /dev/vfio/vfio instead of VFIO. This relies on
|
|
IOMMUFD providing compatibility emulation to give the same ioctls.
|
|
It provides an option to build a kernel with legacy VFIO components
|
|
removed.
|
|
|
|
IOMMUFD VFIO container emulation is known to lack certain features
|
|
of the native VFIO container, such as peer-to-peer
|
|
DMA mapping, PPC IOMMU support, as well as other potentially
|
|
undiscovered gaps. This option is currently intended for the
|
|
purpose of testing IOMMUFD with unmodified userspace supporting VFIO
|
|
and making use of the Type1 VFIO IOMMU backend. General purpose
|
|
enabling of this option is currently discouraged.
|
|
|
|
Unless testing IOMMUFD, say N here.
|
|
|
|
config IOMMUFD_TEST
|
|
bool "IOMMU Userspace API Test support"
|
|
depends on DEBUG_KERNEL
|
|
depends on FAULT_INJECTION
|
|
depends on RUNTIME_TESTING_MENU
|
|
select IOMMUFD_DRIVER
|
|
default n
|
|
help
|
|
This is dangerous, do not enable unless running
|
|
tools/testing/selftests/iommu
|
|
endif
|