#include <linux/linkage.h>
#include <asm/assembler.h>
-#include <asm/uaccess.h>
#include <xen/interface/xen.h>
mov x2, x3
mov x3, x4
mov x4, x5
-#ifdef CONFIG_ARM64_SW_TTBR0_PAN
- /*
- * Privcmd calls are issued by the userspace. The kernel needs to
- * enable access to TTBR0_EL1 as the hypervisor would issue stage 1
- * translations to user memory via AT instructions. Since AT
- * instructions are not affected by the PAN bit (ARMv8.1), we only
- * need the explicit uaccess_enable/disable if the TTBR0 PAN emulation
- * is enabled (it implies that hardware UAO and PAN disabled).
- */
- uaccess_enable_not_uao x6, x7
-#endif
hvc XEN_IMM
-
-#ifdef CONFIG_ARM64_SW_TTBR0_PAN
- /*
- * Disable userspace access from kernel once the hyp call completed.
- */
- uaccess_disable_not_uao x6
-#endif
ret
ENDPROC(privcmd_call);