Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.git] / arch / x86 / lib / getuser.S
index 51f1504..559f676 100644 (file)
@@ -40,6 +40,8 @@ ENTRY(__get_user_1)
        GET_THREAD_INFO(%_ASM_DX)
        cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
        jae bad_get_user
+       sbb %_ASM_DX, %_ASM_DX          /* array_index_mask_nospec() */
+       and %_ASM_DX, %_ASM_AX
 1:     movzb (%_ASM_AX),%edx
        xor %eax,%eax
        ret
@@ -53,6 +55,8 @@ ENTRY(__get_user_2)
        GET_THREAD_INFO(%_ASM_DX)
        cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
        jae bad_get_user
+       sbb %_ASM_DX, %_ASM_DX          /* array_index_mask_nospec() */
+       and %_ASM_DX, %_ASM_AX
 2:     movzwl -1(%_ASM_AX),%edx
        xor %eax,%eax
        ret
@@ -66,6 +70,8 @@ ENTRY(__get_user_4)
        GET_THREAD_INFO(%_ASM_DX)
        cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
        jae bad_get_user
+       sbb %_ASM_DX, %_ASM_DX          /* array_index_mask_nospec() */
+       and %_ASM_DX, %_ASM_AX
 3:     mov -3(%_ASM_AX),%edx
        xor %eax,%eax
        ret
@@ -80,6 +86,8 @@ ENTRY(__get_user_8)
        GET_THREAD_INFO(%_ASM_DX)
        cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
        jae     bad_get_user
+       sbb %_ASM_DX, %_ASM_DX          /* array_index_mask_nospec() */
+       and %_ASM_DX, %_ASM_AX
 4:     movq -7(%_ASM_AX),%_ASM_DX
        xor %eax,%eax
        ret