--- zzzz-none-000/linux-4.4.271/arch/arm/include/asm/proc-fns.h 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/arch/arm/include/asm/proc-fns.h 2023-04-19 10:22:27.000000000 +0000 @@ -172,7 +172,29 @@ pg &= ~(PTRS_PER_PGD*sizeof(pgd_t)-1); \ (pgd_t *)phys_to_virt(pg); \ }) +#define cpu_set_ttbr0(val) \ + do { \ + u64 ttbr = val; \ + __asm__("mcrr p15, 0, %0, %1, c2" \ + : : "r" (ttbr), "r" (ttbr >> 32)); \ + } while (0) + #else +#define cpu_get_ttbr(nr) \ + ({ \ + unsigned long ttbr; \ + __asm__("mrc p15, 0, %0, c2, c0, 0" \ + : "=r" (ttbr)); \ + ttbr; \ + }) + +#define cpu_set_ttbr0(val) \ + do { \ + u64 ttbr = val; \ + __asm__("mcr p15, 0, %0, c2, c0, 0" \ + : : "r" (ttbr)); \ + } while (0) + #define cpu_get_pgd() \ ({ \ unsigned long pg; \