From 23b973a077467818793a7aad89fde5eaf55cbd7f Mon Sep 17 00:00:00 2001 From: Michael Schmitz Date: Thu, 25 Apr 2024 17:39:07 +1200 Subject: [PATCH] m68k: add more exception handling to __generic_copy_to_user --- arch/m68k/lib/uaccess.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/arch/m68k/lib/uaccess.c b/arch/m68k/lib/uaccess.c index ef761fc10981..5e27d5d3f10f 100644 --- a/arch/m68k/lib/uaccess.c +++ b/arch/m68k/lib/uaccess.c @@ -66,23 +66,25 @@ unsigned long __generic_copy_to_user(void __user *to, const void *from, "3: subq.l #1,%0\n" "4: jne 1b\n" "5: btst #1,%5\n" - " jeq 7f\n" - " move.w (%1)+,%3\n" - "6: "MOVES".w %3,(%2)+\n" - "7: btst #0,%5\n" - "8: jeq 10f\n" - " move.b (%1)+,%3\n" - "9: "MOVES".b %3,(%2)+\n" - "10:\n" + " jeq 8f\n" + "6: move.w (%1)+,%3\n" + "7: "MOVES".w %3,(%2)+\n" + "8: btst #0,%5\n" + "9: jeq 13f\n" + "10: move.b (%1)+,%3\n" + "11: "MOVES".b %3,(%2)+\n" + "12: nop\n" + "13:\n" " .section .fixup,\"ax\"\n" " .even\n" "20: lsl.l #2,%0\n" "50: add.l %5,%0\n" - " jra 10b\n" + " jra 13b\n" " .previous\n" "\n" " .section __ex_table,\"a\"\n" " .align 4\n" + " .long 1b,20b\n" " .long 2b,20b\n" " .long 3b,20b\n" " .long 4b,20b\n" @@ -91,6 +93,8 @@ unsigned long __generic_copy_to_user(void __user *to, const void *from, " .long 8b,50b\n" " .long 9b,50b\n" " .long 10b,50b\n" + " .long 11b,50b\n" + " .long 12b,50b\n" " .previous" : "=d" (res), "+a" (from), "+a" (to), "=&d" (tmp) : "0" (n / 4), "d" (n & 3)); -- 2.17.1