lkml.org 
[lkml]   [2019]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 11/15] binfmt_flat: provide an asm-generic/flat.h
    Date
    This file implements the flat get/put reloc helpers for architectures
    that do not need to overload the relocs by simply using get_user/put_user.

    Note that many nommu architectures currently use {get,put}_unaligned, which
    looks a little bogus and should probably later be switched over to this
    version as well.

    Signed-off-by: Christoph Hellwig <hch@lst.de>
    ---
    arch/arm/include/asm/Kbuild | 1 +
    arch/m68k/include/asm/flat.h | 21 +------------------
    .../asm => include/asm-generic}/flat.h | 12 ++++-------
    3 files changed, 6 insertions(+), 28 deletions(-)
    rename {arch/arm/include/asm => include/asm-generic}/flat.h (73%)

    diff --git a/arch/arm/include/asm/Kbuild b/arch/arm/include/asm/Kbuild
    index a8f149ab45b8..6b2dc15b6dff 100644
    --- a/arch/arm/include/asm/Kbuild
    +++ b/arch/arm/include/asm/Kbuild
    @@ -5,6 +5,7 @@ generic-y += early_ioremap.h
    generic-y += emergency-restart.h
    generic-y += exec.h
    generic-y += extable.h
    +generic-y += flat.h
    generic-y += irq_regs.h
    generic-y += kdebug.h
    generic-y += local.h
    diff --git a/arch/m68k/include/asm/flat.h b/arch/m68k/include/asm/flat.h
    index d7102fcd43eb..46379e08cdd6 100644
    --- a/arch/m68k/include/asm/flat.h
    +++ b/arch/m68k/include/asm/flat.h
    @@ -6,26 +6,7 @@
    #ifndef __M68KNOMMU_FLAT_H__
    #define __M68KNOMMU_FLAT_H__

    -#include <linux/uaccess.h>
    -
    -static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags,
    - u32 *addr, u32 *persistent)
    -{
    -#ifdef CONFIG_CPU_HAS_NO_UNALIGNED
    - return copy_from_user(addr, rp, 4) ? -EFAULT : 0;
    -#else
    - return get_user(*addr, rp);
    -#endif
    -}
    -
    -static inline int flat_put_addr_at_rp(u32 __user *rp, u32 addr, u32 rel)
    -{
    -#ifdef CONFIG_CPU_HAS_NO_UNALIGNED
    - return copy_to_user(rp, &addr, 4) ? -EFAULT : 0;
    -#else
    - return put_user(addr, rp);
    -#endif
    -}
    +#include <asm-generic/flat.h>

    #define FLAT_PLAT_INIT(regs) \
    do { \
    diff --git a/arch/arm/include/asm/flat.h b/include/asm-generic/flat.h
    similarity index 73%
    rename from arch/arm/include/asm/flat.h
    rename to include/asm-generic/flat.h
    index bbc27901446f..fcd2b45c0735 100644
    --- a/arch/arm/include/asm/flat.h
    +++ b/include/asm-generic/flat.h
    @@ -1,15 +1,11 @@
    /* SPDX-License-Identifier: GPL-2.0 */
    -/*
    - * arch/arm/include/asm/flat.h -- uClinux flat-format executables
    - */
    -
    -#ifndef __ARM_FLAT_H__
    -#define __ARM_FLAT_H__
    +#ifndef _ASM_GENERIC_FLAT_H
    +#define _ASM_GENERIC_FLAT_H

    #include <linux/uaccess.h>

    static inline int flat_get_addr_from_rp(u32 __user *rp, u32 relval, u32 flags,
    - u32 *addr, u32 *persistent)
    + u32 *addr, u32 *persistent)
    {
    #ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
    return copy_from_user(addr, rp, 4) ? -EFAULT : 0;
    @@ -27,4 +23,4 @@ static inline int flat_put_addr_at_rp(u32 __user *rp, u32 addr, u32 rel)
    #endif
    }

    -#endif /* __ARM_FLAT_H__ */
    +#endif /* _ASM_GENERIC_FLAT_H */
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-06-10 23:22    [W:3.364 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site