lkml.org 
[lkml]   [2017]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 12/33] x86/fpu: Remove 'ubuf' parameter from the copy_kernel_to_xstate() API
    Date
    No change in functionality.

    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yu-cheng Yu <yu-cheng.yu@intel.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    ---
    arch/x86/include/asm/fpu/xstate.h | 2 +-
    arch/x86/kernel/fpu/regset.c | 2 +-
    arch/x86/kernel/fpu/xstate.c | 17 +++--------------
    3 files changed, 5 insertions(+), 16 deletions(-)

    diff --git a/arch/x86/include/asm/fpu/xstate.h b/arch/x86/include/asm/fpu/xstate.h
    index 79af79dbcab6..f10889bc0c88 100644
    --- a/arch/x86/include/asm/fpu/xstate.h
    +++ b/arch/x86/include/asm/fpu/xstate.h
    @@ -50,6 +50,6 @@ const void *get_xsave_field_ptr(int xstate_field);
    int using_compacted_format(void);
    int copy_xstate_to_kernel(void *kbuf, struct xregs_state *xsave, unsigned int offset, unsigned int size);
    int copy_xstate_to_user(void __user *ubuf, struct xregs_state *xsave, unsigned int offset, unsigned int size);
    -int copy_kernel_to_xstate(const void *kbuf, const void __user *ubuf, struct xregs_state *xsave);
    +int copy_kernel_to_xstate(const void *kbuf, struct xregs_state *xsave);
    int copy_user_to_xstate(const void *kbuf, const void __user *ubuf, struct xregs_state *xsave);
    #endif
    diff --git a/arch/x86/kernel/fpu/regset.c b/arch/x86/kernel/fpu/regset.c
    index cb45dd81d617..785302c75f38 100644
    --- a/arch/x86/kernel/fpu/regset.c
    +++ b/arch/x86/kernel/fpu/regset.c
    @@ -136,7 +136,7 @@ int xstateregs_set(struct task_struct *target, const struct user_regset *regset,

    if (boot_cpu_has(X86_FEATURE_XSAVES)) {
    if (kbuf)
    - ret = copy_kernel_to_xstate(kbuf, ubuf, xsave);
    + ret = copy_kernel_to_xstate(kbuf, xsave);
    else
    ret = copy_user_to_xstate(kbuf, ubuf, xsave);
    } else {
    diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
    index 1ad25d1b8056..71cc8d367fdd 100644
    --- a/arch/x86/kernel/fpu/xstate.c
    +++ b/arch/x86/kernel/fpu/xstate.c
    @@ -1089,8 +1089,7 @@ int copy_xstate_to_user(void __user *ubuf, struct xregs_state *xsave, unsigned i
    * there we check the CPU has XSAVES and a whole standard-sized buffer
    * exists.
    */
    -int copy_kernel_to_xstate(const void *kbuf, const void __user *ubuf,
    - struct xregs_state *xsave)
    +int copy_kernel_to_xstate(const void *kbuf, struct xregs_state *xsave)
    {
    unsigned int offset, size;
    int i;
    @@ -1100,12 +1099,7 @@ int copy_kernel_to_xstate(const void *kbuf, const void __user *ubuf,
    offset = offsetof(struct xregs_state, header);
    size = sizeof(xfeatures);

    - if (kbuf) {
    - memcpy(&xfeatures, kbuf + offset, size);
    - } else {
    - if (__copy_from_user(&xfeatures, ubuf + offset, size))
    - return -EFAULT;
    - }
    + memcpy(&xfeatures, kbuf + offset, size);

    /*
    * Reject if the user sets any disabled or supervisor features:
    @@ -1124,12 +1118,7 @@ int copy_kernel_to_xstate(const void *kbuf, const void __user *ubuf,
    offset = xstate_offsets[i];
    size = xstate_sizes[i];

    - if (kbuf) {
    - memcpy(dst, kbuf + offset, size);
    - } else {
    - if (__copy_from_user(dst, ubuf + offset, size))
    - return -EFAULT;
    - }
    + memcpy(dst, kbuf + offset, size);
    }
    }

    --
    2.11.0
    \
     
     \ /
      Last update: 2017-09-23 15:07    [W:4.044 / U:2.644 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site