Commit 591857b6 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/vdso: Simplify __get_datapage()



The VDSO datapage and the text pages are always located immediately
next to each other, so it can be hardcoded without an indirection
through __kernel_datapage_offset

Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/b08f5ef99d64cfc38f79b7ad5310d9b4d2479eeb.1601197618.git.christophe.leroy@csgroup.eu
parent 511157ab
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -105,10 +105,12 @@ extern struct vdso_arch_data *vdso_data;

.macro get_datapage ptr, tmp
	bcl	20, 31, .+4
999:
	mflr	\ptr
	addi	\ptr, \ptr, (__kernel_datapage_offset - (.-4))@l
	lwz	\tmp, 0(\ptr)
	add	\ptr, \tmp, \ptr
#if CONFIG_PPC_PAGE_SHIFT > 14
	addis	\ptr, \ptr, (_vdso_datapage - 999b)@ha
#endif
	addi	\ptr, \ptr, (_vdso_datapage - 999b)@l
.endm

#endif /* __ASSEMBLY__ */
+2 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
 * library
 */
#include <asm/vdso.h>
#include <asm/page.h>

#ifdef __LITTLE_ENDIAN__
OUTPUT_FORMAT("elf32-powerpcle", "elf32-powerpcle", "elf32-powerpcle")
@@ -15,6 +16,7 @@ ENTRY(_start)

SECTIONS
{
	PROVIDE(_vdso_datapage = . - PAGE_SIZE);
	. = VDSO32_LBASE + SIZEOF_HEADERS;

	.hash          	: { *(.hash) }			:text
+2 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
 * library
 */
#include <asm/vdso.h>
#include <asm/page.h>

#ifdef __LITTLE_ENDIAN__
OUTPUT_FORMAT("elf64-powerpcle", "elf64-powerpcle", "elf64-powerpcle")
@@ -15,6 +16,7 @@ ENTRY(_start)

SECTIONS
{
	PROVIDE(_vdso_datapage = . - PAGE_SIZE);
	. = VDSO64_LBASE + SIZEOF_HEADERS;

	.hash		: { *(.hash) }			:text