The labels after the last put_user patch were misplaced so
exceptions on the real mov instructions would not be handled.
Noted by Brian Gerst <bgerst@didntduck.org>
        jc 20f
        cmpq threadinfo_addr_limit(%r8),%rcx
        jae 20f
-2:     decq %rcx
-       movw %dx,(%rcx)
+       decq %rcx
+2:     movw %dx,(%rcx)
        xorl %eax,%eax
        ret
 20:    decq %rcx
        jc 30f
        cmpq threadinfo_addr_limit(%r8),%rcx
        jae 30f
-3:     subq $3,%rcx
-       movl %edx,(%rcx)
+       subq $3,%rcx
+3:     movl %edx,(%rcx)
        xorl %eax,%eax
        ret
 30:    subq $3,%rcx
        jc 40f
        cmpq threadinfo_addr_limit(%r8),%rcx
        jae 40f
-4:     subq $7,%rcx
-       movq %rdx,(%rcx)
+       subq $7,%rcx
+4:     movq %rdx,(%rcx)
        xorl %eax,%eax
        ret
 40:    subq $7,%rcx