ia64: simplify code flow around swiotlb init
authorSergei Trofimovich <slyfox@gentoo.org>
Fri, 30 Apr 2021 05:53:33 +0000 (22:53 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 30 Apr 2021 18:20:35 +0000 (11:20 -0700)
Before the change CONFIG_INTEL_IOMMU && !CONFIG_SWIOTLB && !CONFIG_FLATMEM
could skip `set_max_mapnr(max_low_pfn);` if iommu is not present on
system.

Link: https://lkml.kernel.org/r/20210328202439.403601-1-slyfox@gentoo.org
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/ia64/mm/init.c

index 16d0d7d2265784b5818ee739632adb7057540054..a63585db94fe83f5cebb4b4d7c73f7a34c913617 100644 (file)
@@ -644,13 +644,16 @@ mem_init (void)
         * _before_ any drivers that may need the PCI DMA interface are
         * initialized or bootmem has been freed.
         */
+       do {
 #ifdef CONFIG_INTEL_IOMMU
-       detect_intel_iommu();
-       if (!iommu_detected)
+               detect_intel_iommu();
+               if (iommu_detected)
+                       break;
 #endif
 #ifdef CONFIG_SWIOTLB
                swiotlb_init(1);
 #endif
+       } while (0);
 
 #ifdef CONFIG_FLATMEM
        BUG_ON(!mem_map);