bgeu t0, t1, 2f
        bltu a0, t0, 4f
 1:
-       fixup REG_S, zero, (a0), 10f
+       fixup REG_S, zero, (a0), 11f
        addi a0, a0, SZREG
        bltu a0, t1, 1b
 2:
        li a0, 0
        ret
 4: /* Edge case: unalignment */
-       fixup sb, zero, (a0), 10f
+       fixup sb, zero, (a0), 11f
        addi a0, a0, 1
        bltu a0, t0, 4b
        j 1b
 5: /* Edge case: remainder */
-       fixup sb, zero, (a0), 10f
+       fixup sb, zero, (a0), 11f
        addi a0, a0, 1
        bltu a0, a3, 5b
        j 3b
 
        .section .fixup,"ax"
        .balign 4
+       /* Fixup code for __copy_user(10) and __clear_user(11) */
 10:
        /* Disable access to user memory */
        csrs sstatus, t6
-       sub a0, a3, a0
+       mv a0, a2
+       ret
+11:
+       csrs sstatus, t6
+       mv a0, a1
        ret
        .previous