# \[PATCHv2 07/18\] arm64: mm: add code to safely replace TTBR1\_EL1

- From: Mark Rutland \<mark.rutland@arm.com\>
- Date: 2016-01-05 15:45:10 
- List: linux-arm-kernel
- Page: https://ratatoskr.run/linux-arm-kernel/2016/01/8727083
- Thread: https://ratatoskr.run/linux-arm-kernel/2016/01/8726972/t.md

```text
On Tue, Jan 05, 2016 at 03:22:18PM +0000, Catalin Marinas wrote:
> On Mon, Jan 04, 2016 at 05:56:40PM +0000, Mark Rutland wrote:
> > +	.pushsection ".idmap.text", "ax"
> > +/*
> > + * void idmap_cpu_replace_ttbr1(phys_addr_t new_pgd, phys_addr_t reserved_pgd)
> > + *
> > + * This is the low-level counterpart to cpu_replace_ttbr1, and should not be
> > + * called by anything else. It can only be executed from a TTBR0 mapping.
> > + */
> > +ENTRY(idmap_cpu_replace_ttbr1)
> > +	mrs	x2, daif
> > +	msr	daifset, #0xf
> > +
> > +	msr	ttbr1_el1, x1
> 
> Would it work to avoid the second argument and only use adrp, now that
> empty_zero_page is at a fixed offset relative to this function?

Yes, it would.

I've folded that in locally.

Thanks,
Mark.
```
