mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 23:24:11 +08:00
vfio/spapr: Move VFIO_CHECK_EXTENSION into tce_iommu_ioctl()
The PPC64 kconfig is a bit of a rats nest, but it turns out that if CONFIG_SPAPR_TCE_IOMMU is on then EEH must be too: config SPAPR_TCE_IOMMU bool "sPAPR TCE IOMMU Support" depends on PPC_POWERNV || PPC_PSERIES select IOMMU_API help Enables bits of IOMMU API required by VFIO. The iommu_ops is not implemented as it is not necessary for VFIO. config PPC_POWERNV select FORCE_PCI config PPC_PSERIES select FORCE_PCI config EEH bool depends on (PPC_POWERNV || PPC_PSERIES) && PCI default y So, just open code the call to eeh_enabled() into tce_iommu_ioctl(). Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> Link: https://lore.kernel.org/r/2-v5-fc5346cacfd4+4c482-vfio_modules_jgg@nvidia.com Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
8f8bcc8c72
commit
e5c38a203e
@ -785,14 +785,12 @@ static long tce_iommu_ioctl(void *iommu_data,
|
||||
switch (arg) {
|
||||
case VFIO_SPAPR_TCE_IOMMU:
|
||||
case VFIO_SPAPR_TCE_v2_IOMMU:
|
||||
ret = 1;
|
||||
break;
|
||||
return 1;
|
||||
case VFIO_EEH:
|
||||
return eeh_enabled();
|
||||
default:
|
||||
ret = vfio_spapr_iommu_eeh_ioctl(NULL, cmd, arg);
|
||||
break;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (ret < 0) ? 0 : ret;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -24,12 +24,6 @@ long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group,
|
||||
long ret = -EINVAL;
|
||||
|
||||
switch (cmd) {
|
||||
case VFIO_CHECK_EXTENSION:
|
||||
if (arg == VFIO_EEH)
|
||||
ret = eeh_enabled() ? 1 : 0;
|
||||
else
|
||||
ret = 0;
|
||||
break;
|
||||
case VFIO_EEH_PE_OP:
|
||||
pe = eeh_iommu_group_to_pe(group);
|
||||
if (!pe)
|
||||
|
Loading…
Reference in New Issue
Block a user