Skip to content

Commit ae5f83c

Browse files
riteshharjanigregkh
authored andcommitted
drivers/vfio_pci_core: Change PXD_ORDER check from switch case to if/else block
[ Upstream commit 948b71a ] Architectures like PowerPC uses runtime defined values for PMD_ORDER/PUD_ORDER. This is because it can use either RADIX or HASH MMU at runtime using kernel cmdline. So the pXd_index_size is not known at compile time. Without this fix, when we add huge pfn support on powerpc in the next patch, vfio_pci_core driver compilation can fail with the following errors. CC [M] drivers/vfio/vfio_main.o CC [M] drivers/vfio/group.o CC [M] drivers/vfio/container.o CC [M] drivers/vfio/virqfd.o CC [M] drivers/vfio/vfio_iommu_spapr_tce.o CC [M] drivers/vfio/pci/vfio_pci_core.o CC [M] drivers/vfio/pci/vfio_pci_intrs.o CC [M] drivers/vfio/pci/vfio_pci_rdwr.o CC [M] drivers/vfio/pci/vfio_pci_config.o CC [M] drivers/vfio/pci/vfio_pci.o AR kernel/built-in.a ../drivers/vfio/pci/vfio_pci_core.c: In function ‘vfio_pci_vmf_insert_pfn’: ../drivers/vfio/pci/vfio_pci_core.c:1678:9: error: case label does not reduce to an integer constant 1678 | case PMD_ORDER: | ^~~~ ../drivers/vfio/pci/vfio_pci_core.c:1682:9: error: case label does not reduce to an integer constant 1682 | case PUD_ORDER: | ^~~~ make[6]: *** [../scripts/Makefile.build:289: drivers/vfio/pci/vfio_pci_core.o] Error 1 make[6]: *** Waiting for unfinished jobs.... make[5]: *** [../scripts/Makefile.build:546: drivers/vfio/pci] Error 2 make[5]: *** Waiting for unfinished jobs.... make[4]: *** [../scripts/Makefile.build:546: drivers/vfio] Error 2 make[3]: *** [../scripts/Makefile.build:546: drivers] Error 2 Fixes: f9e54c3 ("vfio/pci: implement huge_fault support") Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Reviewed-by: Alex Williamson <alex@shazbot.org> Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/b155e19993ee1f5584c72050192eb468b31c5029.1773058761.git.ritesh.list@gmail.com Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent fa3b3e4 commit ae5f83c

1 file changed

Lines changed: 7 additions & 12 deletions

File tree

drivers/vfio/pci/vfio_pci_core.c

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1687,21 +1687,16 @@ vm_fault_t vfio_pci_vmf_insert_pfn(struct vfio_pci_core_device *vdev,
16871687
if (vdev->pm_runtime_engaged || !__vfio_pci_memory_enabled(vdev))
16881688
return VM_FAULT_SIGBUS;
16891689

1690-
switch (order) {
1691-
case 0:
1690+
if (!order)
16921691
return vmf_insert_pfn(vmf->vma, vmf->address, pfn);
1693-
#ifdef CONFIG_ARCH_SUPPORTS_PMD_PFNMAP
1694-
case PMD_ORDER:
1692+
1693+
if (IS_ENABLED(CONFIG_ARCH_SUPPORTS_PMD_PFNMAP) && order == PMD_ORDER)
16951694
return vmf_insert_pfn_pmd(vmf, pfn, false);
1696-
#endif
1697-
#ifdef CONFIG_ARCH_SUPPORTS_PUD_PFNMAP
1698-
case PUD_ORDER:
1695+
1696+
if (IS_ENABLED(CONFIG_ARCH_SUPPORTS_PUD_PFNMAP) && order == PUD_ORDER)
16991697
return vmf_insert_pfn_pud(vmf, pfn, false);
1700-
break;
1701-
#endif
1702-
default:
1703-
return VM_FAULT_FALLBACK;
1704-
}
1698+
1699+
return VM_FAULT_FALLBACK;
17051700
}
17061701
EXPORT_SYMBOL_GPL(vfio_pci_vmf_insert_pfn);
17071702

0 commit comments

Comments
 (0)