Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 51f59f7b authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "arm64: lib: use pair accessors for copy_*_user routines"

parents b95016e2 cfba0813
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -28,14 +28,19 @@
 *	x0 - bytes not copied
 */
ENTRY(__copy_from_user)
	add	x4, x1, x2			// upper user buffer boundary
	subs	x2, x2, #8
	add	x5, x1, x2			// upper user buffer boundary
	subs	x2, x2, #16
	b.mi	1f
0:
USER(9f, ldp	x3, x4, [x1], #16)
	subs	x2, x2, #16
	stp	x3, x4, [x0], #16
	b.pl	0b
1:	adds	x2, x2, #8
	b.mi	2f
1:
USER(9f, ldr	x3, [x1], #8	)
	subs	x2, x2, #8
	sub	x2, x2, #8
	str	x3, [x0], #8
	b.pl	1b
2:	adds	x2, x2, #4
	b.mi	3f
USER(9f, ldr	w3, [x1], #4	)
@@ -56,7 +61,7 @@ ENDPROC(__copy_from_user)

	.section .fixup,"ax"
	.align	2
9:	sub	x2, x4, x1
9:	sub	x2, x5, x1
	mov	x3, x2
10:	strb	wzr, [x0], #1			// zero remaining buffer space
	subs	x3, x3, #1
+11 −6
Original line number Diff line number Diff line
@@ -30,14 +30,19 @@
 *	x0 - bytes not copied
 */
ENTRY(__copy_in_user)
	add	x4, x0, x2			// upper user buffer boundary
	subs	x2, x2, #8
	add	x5, x0, x2			// upper user buffer boundary
	subs	x2, x2, #16
	b.mi	1f
0:
USER(9f, ldp	x3, x4, [x1], #16)
	subs	x2, x2, #16
USER(9f, stp	x3, x4, [x0], #16)
	b.pl	0b
1:	adds	x2, x2, #8
	b.mi	2f
1:
USER(9f, ldr	x3, [x1], #8	)
	subs	x2, x2, #8
	sub	x2, x2, #8
USER(9f, str	x3, [x0], #8	)
	b.pl	1b
2:	adds	x2, x2, #4
	b.mi	3f
USER(9f, ldr	w3, [x1], #4	)
@@ -58,6 +63,6 @@ ENDPROC(__copy_in_user)

	.section .fixup,"ax"
	.align	2
9:	sub	x0, x4, x0			// bytes not copied
9:	sub	x0, x5, x0			// bytes not copied
	ret
	.previous
+11 −6
Original line number Diff line number Diff line
@@ -28,14 +28,19 @@
 *	x0 - bytes not copied
 */
ENTRY(__copy_to_user)
	add	x4, x0, x2			// upper user buffer boundary
	subs	x2, x2, #8
	add	x5, x0, x2			// upper user buffer boundary
	subs	x2, x2, #16
	b.mi	1f
0:
	ldp	x3, x4, [x1], #16
	subs	x2, x2, #16
USER(9f, stp	x3, x4, [x0], #16)
	b.pl	0b
1:	adds	x2, x2, #8
	b.mi	2f
1:
	ldr	x3, [x1], #8
	subs	x2, x2, #8
	sub	x2, x2, #8
USER(9f, str	x3, [x0], #8	)
	b.pl	1b
2:	adds	x2, x2, #4
	b.mi	3f
	ldr	w3, [x1], #4
@@ -56,6 +61,6 @@ ENDPROC(__copy_to_user)

	.section .fixup,"ax"
	.align	2
9:	sub	x0, x4, x0			// bytes not copied
9:	sub	x0, x5, x0			// bytes not copied
	ret
	.previous