From mboxrd@z Thu Jan 1 00:00:00 1970 From: lauraa@codeaurora.org (Laura Abbott) Date: Tue, 20 May 2014 09:20:43 -0700 Subject: [PATCH 1/4] arm64: head.S: remove unnecessary function alignment In-Reply-To: <1400233839-15140-2-git-send-email-mark.rutland@arm.com> References: <1400233839-15140-1-git-send-email-mark.rutland@arm.com> <1400233839-15140-2-git-send-email-mark.rutland@arm.com> Message-ID: <537B80DB.6060205@codeaurora.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 5/16/2014 2:50 AM, Mark Rutland wrote: > Currently __turn_mmu_on is aligned to 64 bytes to ensure that it doesn't > span any page boundary, which simplifies the idmap and spares us > requiring an additional page table to map half of the function. In > keeping with other important requirements in architecture code, this > fact is undocumented. > > Additionally, as the function consists of three instructions totalling > 12 bytes with no literal pool data, a smaller alignment of 16 bytes > would be sufficient. > > This patch reduces the alignment to 16 bytes and documents the > underlying reason for the alignment. This reduces the required alignment > of the entire .head.text section from 64 bytes to 16 bytes, though it > may still be aligned to a larger value depending on TEXT_OFFSET. > > Signed-off-by: Mark Rutland > --- > arch/arm64/kernel/head.S | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S > index 0fd5650..e8e9883 100644 > --- a/arch/arm64/kernel/head.S > +++ b/arch/arm64/kernel/head.S > @@ -346,8 +346,13 @@ ENDPROC(__enable_mmu) > * x27 = *virtual* address to jump to upon completion > * > * other registers depend on the function called upon completion > + * > + * We align the entire function to the smallest power of two larger than it to > + * ensure it fits within a single block map entry. Otherwise were PHYS_OFFSET > + * close to the end of a 512MB or 1GB block we might require an additional > + * table to map the entire function. > */ > - .align 6 > + .align 4 > __turn_mmu_on: > msr sctlr_el1, x0 > isb > Tested-by: Laura Abbott Both 4K and 64K pages -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation