lkml.org 
[lkml]   [2008]   [Jun]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 15/39] don't save ebx in putuser_32.S
    Date
    clobber it in the inline asm macros, and let the compiler do this for us.

    Signed-off-by: Glauber Costa <gcosta@redhat.com>
    ---
    arch/x86/lib/putuser_32.S | 13 ++-----------
    include/asm-x86/uaccess_32.h | 10 +++++-----
    2 files changed, 7 insertions(+), 16 deletions(-)

    diff --git a/arch/x86/lib/putuser_32.S b/arch/x86/lib/putuser_32.S
    index f58fba1..5b2a926 100644
    --- a/arch/x86/lib/putuser_32.S
    +++ b/arch/x86/lib/putuser_32.S
    @@ -26,14 +26,8 @@
    */

    #define ENTER CFI_STARTPROC ; \
    - pushl %ebx ; \
    - CFI_ADJUST_CFA_OFFSET 4 ; \
    - CFI_REL_OFFSET ebx, 0 ; \
    GET_THREAD_INFO(%ebx)
    -#define EXIT popl %ebx ; \
    - CFI_ADJUST_CFA_OFFSET -4 ; \
    - CFI_RESTORE ebx ; \
    - ret ; \
    +#define EXIT ret ; \
    CFI_ENDPROC

    .text
    @@ -81,10 +75,7 @@ ENTRY(__put_user_8)
    ENDPROC(__put_user_8)

    bad_put_user:
    - CFI_STARTPROC simple
    - CFI_DEF_CFA esp, 2*4
    - CFI_OFFSET eip, -1*4
    - CFI_OFFSET ebx, -2*4
    + CFI_STARTPROC
    movl $-14,%eax
    EXIT
    END(bad_put_user)
    diff --git a/include/asm-x86/uaccess_32.h b/include/asm-x86/uaccess_32.h
    index 6a8adec..94d201b 100644
    --- a/include/asm-x86/uaccess_32.h
    +++ b/include/asm-x86/uaccess_32.h
    @@ -188,23 +188,23 @@ extern void __put_user_8(void);

    #define __put_user_1(x, ptr) \
    asm volatile("call __put_user_1" : "=a" (__ret_pu) \
    - : "0" ((typeof(*(ptr)))(x)), "c" (ptr))
    + : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")

    #define __put_user_2(x, ptr) \
    asm volatile("call __put_user_2" : "=a" (__ret_pu) \
    - : "0" ((typeof(*(ptr)))(x)), "c" (ptr))
    + : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")

    #define __put_user_4(x, ptr) \
    asm volatile("call __put_user_4" : "=a" (__ret_pu) \
    - : "0" ((typeof(*(ptr)))(x)), "c" (ptr))
    + : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")

    #define __put_user_8(x, ptr) \
    asm volatile("call __put_user_8" : "=a" (__ret_pu) \
    - : "A" ((typeof(*(ptr)))(x)), "c" (ptr))
    + : "A" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")

    #define __put_user_X(x, ptr) \
    asm volatile("call __put_user_X" : "=a" (__ret_pu) \
    - : "c" (ptr))
    + : "c" (ptr): "ebx")

    /**
    * put_user: - Write a simple value into user space.
    --
    1.5.5.1


    \
     
     \ /
      Last update: 2008-06-27 23:45    [W:0.022 / U:31.368 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site