#endif
        .endm
 
-       .macro  uaccess_disable, tmp, isb=1
 #ifdef CONFIG_CPU_SW_DOMAIN_PAN
+
+       .macro  uaccess_disable, tmp, isb=1
        /*
         * Whenever we re-enter userspace, the domains should always be
         * set appropriately.
        .if     \isb
        instr_sync
        .endif
-#endif
        .endm
 
        .macro  uaccess_enable, tmp, isb=1
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
        /*
         * Whenever we re-enter userspace, the domains should always be
         * set appropriately.
        .if     \isb
        instr_sync
        .endif
-#endif
        .endm
 
+#else
+
+       .macro  uaccess_disable, tmp, isb=1
+       .endm
+
+       .macro  uaccess_enable, tmp, isb=1
+       .endm
+
+#endif
+
 #if defined(CONFIG_CPU_SW_DOMAIN_PAN) || defined(CONFIG_CPU_USE_DOMAINS)
 #define DACR(x...)     x
 #else
 
  * perform such accesses (eg, via list poison values) which could then
  * be exploited for priviledge escalation.
  */
+#ifdef CONFIG_CPU_SW_DOMAIN_PAN
+
 static __always_inline unsigned int uaccess_save_and_enable(void)
 {
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
        unsigned int old_domain = get_domain();
 
        /* Set the current domain access to permit user accesses */
                   domain_val(DOMAIN_USER, DOMAIN_CLIENT));
 
        return old_domain;
-#else
-       return 0;
-#endif
 }
 
 static __always_inline void uaccess_restore(unsigned int flags)
 {
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
        /* Restore the user access mask */
        set_domain(flags);
-#endif
 }
 
+#else
+
+static inline unsigned int uaccess_save_and_enable(void)
+{
+       return 0;
+}
+
+static inline void uaccess_restore(unsigned int flags)
+{
+}
+
+#endif
+
 /*
  * These two are intentionally not defined anywhere - if the kernel
  * code generates any references to them, that's a bug.