arm64: hibernate: pass the allocated pgdp to ttbr0
authorPavel Tatashin <pasha.tatashin@soleen.com>
Wed, 4 Dec 2019 15:59:18 +0000 (10:59 -0500)
committerWill Deacon <will@kernel.org>
Wed, 8 Jan 2020 16:32:55 +0000 (16:32 +0000)
ttbr0 should be set to the beginning of pgdp, however, currently
in create_safe_exec_page it is set to pgdp after pgd_offset_raw(),
which works by accident.

Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
Reviewed-by: James Morse <james.morse@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/hibernate.c

index a96b292..ef46ce6 100644 (file)
@@ -269,7 +269,7 @@ static int create_safe_exec_page(void *src_start, size_t length,
         */
        cpu_set_reserved_ttbr0();
        local_flush_tlb_all();
-       write_sysreg(phys_to_ttbr(virt_to_phys(pgdp)), ttbr0_el1);
+       write_sysreg(phys_to_ttbr(virt_to_phys(trans_pgd)), ttbr0_el1);
        isb();
 
        *phys_dst_addr = virt_to_phys((void *)dst);