Hi, On Fri, Jan 15, 2016 at 07:18:37PM +0000, Geoff Levand wrote: > This reverts commit b08d4640a3dca68670fc5af2fe9205b395a02388. > > Add back the setup_mm_for_reboot() needed for kexec. My pagetable rework series [1,2] adds cpu_install_idmap() [3], which supersedes setup_mm_for_reboot, and differs only in name. I intend to rebase once v4.5-rc1 comes out. Unless there are substantial changes or new comments, I expect that to be on a stable branche shortly thereafter. When that happens, it should be possible to drop this patch. Thanks, Mark. [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2016-January/397095.html [2] https://git.kernel.org/cgit/linux/kernel/git/mark/linux.git/log/?h=arm64/pagetable-rework [3] http://lists.infradead.org/pipermail/linux-arm-kernel/2016-January/397101.html > > Signed-off-by: Geoff Levand <geoff at infradead.org> > --- > arch/arm64/include/asm/mmu.h | 1 + > arch/arm64/mm/mmu.c | 11 +++++++++++ > 2 files changed, 12 insertions(+) > > diff --git a/arch/arm64/include/asm/mmu.h b/arch/arm64/include/asm/mmu.h > index 990124a..6326d11 100644 > --- a/arch/arm64/include/asm/mmu.h > +++ b/arch/arm64/include/asm/mmu.h > @@ -29,6 +29,7 @@ typedef struct { > #define ASID(mm) ((mm)->context.id.counter & 0xffff) > > extern void paging_init(void); > +extern void setup_mm_for_reboot(void); > extern void __iomem *early_io_map(phys_addr_t phys, unsigned long virt); > extern void init_mem_pgprot(void); > extern void create_pgd_mapping(struct mm_struct *mm, phys_addr_t phys, > diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c > index 873e363..afcf1ee 100644 > --- a/arch/arm64/mm/mmu.c > +++ b/arch/arm64/mm/mmu.c > @@ -466,6 +466,17 @@ void __init paging_init(void) > } > > /* > + * Enable the identity mapping to allow the MMU disabling. > + */ > +void setup_mm_for_reboot(void) > +{ > + cpu_set_reserved_ttbr0(); > + flush_tlb_all(); > + cpu_set_idmap_tcr_t0sz(); > + cpu_switch_mm(idmap_pg_dir, &init_mm); > +} > + > +/* > * Check whether a kernel address is valid (derived from arch/x86/). > */ > int kern_addr_valid(unsigned long addr) > -- > 2.5.0 > >