linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] ARM: copypage-fa: add kto and kfrom to input operands list
@ 2018-10-15 22:16 Stefan Agner
  2018-10-15 22:23 ` Russell King - ARM Linux
  2018-10-16  8:00 ` Linus Walleij
  0 siblings, 2 replies; 21+ messages in thread
From: Stefan Agner @ 2018-10-15 22:16 UTC (permalink / raw)
  To: linux, ulli.kroll
  Cc: joel, nico, arnd, linus.walleij, linux-arm-kernel, linux-kernel,
	Stefan Agner

When functions incoming parameters are not in input operands list gcc
4.5 does not load the parameters into registers before calling this
function but the inline assembly assumes valid addresses inside this
function. This breaks the code because r0 and r1 are invalid when
execution enters v4wb_copy_user_page ()

Also the constant needs to be used as third input operand so account
for that as well.

This fixes copypage-fa.c what has previously done before for the other
copypage implementations in commit 9a40ac86152c ("ARM: 6164/1: Add kto
and kfrom to input operands list.").

Signed-off-by: Stefan Agner <stefan@agner.ch>
---
 arch/arm/mm/copypage-fa.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mm/copypage-fa.c b/arch/arm/mm/copypage-fa.c
index d130a5ece5d5..ec6501308c60 100644
--- a/arch/arm/mm/copypage-fa.c
+++ b/arch/arm/mm/copypage-fa.c
@@ -22,7 +22,7 @@ fa_copy_user_page(void *kto, const void *kfrom)
 {
 	asm("\
 	stmfd	sp!, {r4, lr}			@ 2\n\
-	mov	r2, %0				@ 1\n\
+	mov	r2, %2				@ 1\n\
 1:	ldmia	r1!, {r3, r4, ip, lr}		@ 4\n\
 	stmia	r0, {r3, r4, ip, lr}		@ 4\n\
 	mcr	p15, 0, r0, c7, c14, 1		@ 1   clean and invalidate D line\n\
@@ -36,7 +36,7 @@ fa_copy_user_page(void *kto, const void *kfrom)
 	mcr	p15, 0, r2, c7, c10, 4		@ 1   drain WB\n\
 	ldmfd	sp!, {r4, pc}			@ 3"
 	:
-	: "I" (PAGE_SIZE / 32));
+	: "r" (kto), "r" (kfrom), "I" (PAGE_SIZE / 32));
 }
 
 void fa_copy_user_highpage(struct page *to, struct page *from,
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2018-11-07 16:58 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-15 22:16 [PATCH 1/2] ARM: copypage-fa: add kto and kfrom to input operands list Stefan Agner
2018-10-15 22:23 ` Russell King - ARM Linux
2018-10-15 22:39   ` Stefan Agner
2018-10-15 22:46     ` Russell King - ARM Linux
2018-10-15 22:52       ` Stefan Agner
2018-10-15 23:03         ` Russell King - ARM Linux
2018-10-16  8:00 ` Linus Walleij
2018-10-16  8:44   ` Russell King - ARM Linux
2018-10-16 11:35     ` Linus Walleij
2018-10-16 20:43     ` Nicolas Pitre
2018-10-16 21:59       ` Stefan Agner
2018-10-17  8:58       ` Arnd Bergmann
2018-10-17  9:04         ` [PATCH] [ALTERNATIVE] ARM: fix copypage functions for clang Arnd Bergmann
2018-10-17  9:35           ` Russell King - ARM Linux
2018-10-17 14:23         ` [PATCH 1/2] ARM: copypage-fa: add kto and kfrom to input operands list Nicolas Pitre
2018-11-05 23:00       ` Stefan Agner
2018-11-06  4:49         ` Nicolas Pitre
2018-11-06 13:16           ` Robin Murphy
2018-11-06 13:25             ` Nicolas Pitre
2018-11-07 16:27           ` Stefan Agner
2018-11-07 16:58             ` Nicolas Pitre

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).