]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ARM: provide individual is_translation_fault() and is_permission_fault()
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Fri, 5 Dec 2025 16:26:04 +0000 (16:26 +0000)
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Mon, 2 Mar 2026 11:20:33 +0000 (11:20 +0000)
Provide individual LPAE and non-LPAE definitions for both these
functions, rather than having ifdefs inside the function body. This
places the functions closer to their associated definitions.

Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
arch/arm/mm/fault.h

index 44c0fad29cce350eff150979755f350cc13689b3..207f1b06941dec4d917951409a5c514d66ca8aa5 100644 (file)
@@ -21,6 +21,20 @@ static inline int fsr_fs(unsigned int fsr)
 {
        return fsr & FSR_FS5_0;
 }
+
+static inline bool is_translation_fault(unsigned int fsr)
+{
+       int fs = fsr_fs(fsr);
+
+       return (fs & FS_MMU_NOLL_MASK) == FS_TRANS_NOLL;
+}
+
+static inline bool is_permission_fault(unsigned int fsr)
+{
+       int fs = fsr_fs(fsr);
+
+       return (fs & FS_MMU_NOLL_MASK) == FS_PERM_NOLL;
+}
 #else
 #define FSR_FS_AEA             22
 #define FS_L1_TRANS            0x5
@@ -35,33 +49,21 @@ static inline int fsr_fs(unsigned int fsr)
 {
        return (fsr & FSR_FS3_0) | (fsr & FSR_FS4) >> 6;
 }
-#endif
 
 static inline bool is_translation_fault(unsigned int fsr)
 {
        int fs = fsr_fs(fsr);
-#ifdef CONFIG_ARM_LPAE
-       if ((fs & FS_MMU_NOLL_MASK) == FS_TRANS_NOLL)
-               return true;
-#else
-       if (fs == FS_L1_TRANS || fs == FS_L2_TRANS)
-               return true;
-#endif
-       return false;
+
+       return fs == FS_L1_TRANS || fs == FS_L2_TRANS;
 }
 
 static inline bool is_permission_fault(unsigned int fsr)
 {
        int fs = fsr_fs(fsr);
-#ifdef CONFIG_ARM_LPAE
-       if ((fs & FS_MMU_NOLL_MASK) == FS_PERM_NOLL)
-               return true;
-#else
-       if (fs == FS_L1_PERM || fs == FS_L2_PERM)
-               return true;
-#endif
-       return false;
+
+       return fs == FS_L1_PERM || fs == FS_L2_PERM;
 }
+#endif
 
 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
 void early_abt_enable(void);