Skip to content
  1. Jul 17, 2019
    • Dmitry V. Levin's avatar
      powerpc: define syscall_get_error() · f296f1df
      Dmitry V. Levin authored
      
      
      syscall_get_error() is required to be implemented on this architecture in
      addition to already implemented syscall_get_nr(), syscall_get_arguments(),
      syscall_get_return_value(), and syscall_get_arch() functions in order to
      extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request.
      
      Link: http://lkml.kernel.org/r/20190510152824.GE28558@altlinux.org
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Acked-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Cc: Elvira Khabirova <lineprinter@altlinux.org>
      Cc: Eugene Syromyatnikov <esyr@redhat.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Greentime Hu <greentime@andestech.com>
      Cc: Helge Deller <deller@gmx.de>	[parisc]
      Cc: James E.J. Bottomley <jejb@parisc-linux.org>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: kbuild test robot <lkp@intel.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f296f1df
    • Dmitry V. Levin's avatar
      parisc: define syscall_get_error() · 2938c1f8
      Dmitry V. Levin authored
      
      
      syscall_get_error() is required to be implemented on all architectures in
      addition to already implemented syscall_get_nr(), syscall_get_arguments(),
      syscall_get_return_value(), and syscall_get_arch() functions in order to
      extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request.
      
      Link: http://lkml.kernel.org/r/20190510152812.GD28558@altlinux.org
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Acked-by: Helge Deller <deller@gmx.de>	[parisc]
      Cc: James E.J. Bottomley <jejb@parisc-linux.org>
      Cc: Elvira Khabirova <lineprinter@altlinux.org>
      Cc: Eugene Syromyatnikov <esyr@redhat.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Greentime Hu <greentime@andestech.com>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: kbuild test robot <lkp@intel.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2938c1f8
    • Dmitry V. Levin's avatar
      mips: define syscall_get_error() · ba849160
      Dmitry V. Levin authored
      
      
      syscall_get_error() is required to be implemented on all architectures
      in addition to already implemented syscall_get_nr(),
      syscall_get_arguments(), syscall_get_return_value(), and
      syscall_get_arch() functions in order to extend the generic ptrace API
      with PTRACE_GET_SYSCALL_INFO request.
      
      Link: http://lkml.kernel.org/r/20190510152803.GC28558@altlinux.org
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Acked-by: default avatarPaul Burton <paul.burton@mips.com>
      Cc: Elvira Khabirova <lineprinter@altlinux.org>
      Cc: Eugene Syromyatnikov <esyr@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Greentime Hu <greentime@andestech.com>
      Cc: Helge Deller <deller@gmx.de>	[parisc]
      Cc: James E.J. Bottomley <jejb@parisc-linux.org>
      Cc: kbuild test robot <lkp@intel.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ba849160
    • Dmitry V. Levin's avatar
      hexagon: define syscall_get_error() and syscall_get_return_value() · 6c132dd6
      Dmitry V. Levin authored
      
      
      syscall_get_* functions are required to be implemented on all
      architectures in order to extend the generic ptrace API with
      PTRACE_GET_SYSCALL_INFO request.
      
      This adds remaining 2 syscall_get_* functions as documented in
      asm-generic/syscall.h: syscall_get_error and syscall_get_return_value.
      
      Link: http://lkml.kernel.org/r/20190510152756.GB28558@altlinux.org
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Elvira Khabirova <lineprinter@altlinux.org>
      Cc: Eugene Syromyatnikov <esyr@redhat.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Greentime Hu <greentime@andestech.com>
      Cc: Helge Deller <deller@gmx.de>	[parisc]
      Cc: James E.J. Bottomley <jejb@parisc-linux.org>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: kbuild test robot <lkp@intel.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6c132dd6
    • Dmitry V. Levin's avatar
      nds32: fix asm/syscall.h · 33644b95
      Dmitry V. Levin authored
      PTRACE_GET_SYSCALL_INFO is a generic ptrace API that lets ptracer obtain
      details of the syscall the tracee is blocked in.
      
      There are two reasons for a special syscall-related ptrace request.
      
      Firstly, with the current ptrace API there are cases when ptracer cannot
      retrieve necessary information about syscalls.  Some examples include:
      
       * The notorious int-0x80-from-64-bit-task issue. See [1] for details.
         In short, if a 64-bit task performs a syscall through int 0x80, its
         tracer has no reliable means to find out that the syscall was, in
         fact, a compat syscall, and misidentifies it.
      
       * Syscall-enter-stop and syscall-exit-stop look the same for the
         tracer. Common practice is to keep track of the sequence of
         ptrace-stops in order not to mix the two syscall-stops up. But it is
         not as simple as it looks; for example, strace had a (just recently
         fixed) long-standing bug where attaching strace to a tracee that is
         performing the execve system call led to the tracer identifying the
         following syscall-exit-stop as syscall-enter-stop, which messed up
         all the state tracking.
      
       * Since the introduction of commit 84d77d3f ("ptrace: Don't allow
         accessing an undumpable mm"), both PTRACE_PEEKDATA and
         process_vm_readv become unavailable when the process dumpable flag is
         cleared. On such architectures as ia64 this results in all syscall
         arguments being unavailable for the tracer.
      
      Secondly, ptracers also have to support a lot of arch-specific code for
      obtaining information about the tracee.  For some architectures, this
      requires a ptrace(PTRACE_PEEKUSER, ...) invocation for every syscall
      argument and return value.
      
      PTRACE_GET_SYSCALL_INFO returns the following structure:
      
      struct ptrace_syscall_info {
      	__u8 op;	/* PTRACE_SYSCALL_INFO_* */
      	__u32 arch __attribute__((__aligned__(sizeof(__u32))));
      	__u64 instruction_pointer;
      	__u64 stack_pointer;
      	union {
      		struct {
      			__u64 nr;
      			__u64 args[6];
      		} entry;
      		struct {
      			__s64 rval;
      			__u8 is_error;
      		} exit;
      		struct {
      			__u64 nr;
      			__u64 args[6];
      			__u32 ret_data;
      		} seccomp;
      	};
      };
      
      The structure was chosen according to [2], except for the following
      changes:
      
       * seccomp substructure was added as a superset of entry substructure
      
       * the type of nr field was changed from int to __u64 because syscall
         numbers are, as a practical matter, 64 bits
      
       * stack_pointer field was added along with instruction_pointer field
         since it is readily available and can save the tracer from extra
         PTRACE_GETREGS/PTRACE_GETREGSET calls
      
       * arch is always initialized to aid with tracing system calls such as
         execve()
      
       * instruction_pointer and stack_pointer are always initialized so they
         could be easily obtained for non-syscall stops
      
       * a boolean is_error field was added along with rval field, this way
         the tracer can more reliably distinguish a return value from an error
         value
      
      strace has been ported to PTRACE_GET_SYSCALL_INFO.  Starting with
      release 4.26, strace uses PTRACE_GET_SYSCALL_INFO API as the preferred
      mechanism of obtaining syscall information.
      
      [1] https://lore.kernel.org/lkml/CA+55aFzcSVmdDj9Lh_gdbz1OzHyEm6ZrGPBDAJnywm2LF_eVyg@mail.gmail.com/
      [2] https://lore.kernel.org/lkml/CAObL_7GM0n80N7J_DFw_eQyfLyzq+sf4y2AvsCCV88Tb3AwEHA@mail.gmail.com/
      
      This patch (of 7):
      
      All syscall_get_*() and syscall_set_*() functions must be defined as
      static inline as on all other architectures, otherwise asm/syscall.h
      cannot be included in more than one compilation unit.
      
      This bug has to be fixed in order to extend the generic
      ptrace API with PTRACE_GET_SYSCALL_INFO request.
      
      Link: http://lkml.kernel.org/r/20190510152749.GA28558@altlinux.org
      Fixes: 1932fbe3
      
       ("nds32: System calls handling")
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Acked-by: default avatarGreentime Hu <greentime@andestech.com>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Elvira Khabirova <lineprinter@altlinux.org>
      Cc: Eugene Syromyatnikov <esyr@redhat.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Helge Deller <deller@gmx.de>	[parisc]
      Cc: James E.J. Bottomley <jejb@parisc-linux.org>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Shuah Khan <shuah@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      33644b95
    • Hariprasad Kelam's avatar
      fs/reiserfs/journal.c: change return type of dirty_one_transaction · dc0dde61
      Hariprasad Kelam authored
      
      
      Change return type of dirty_one_transaction from int to void.  As this
      function always return success.
      
      Fixes below issue reported by coccicheck:
      
        fs/reiserfs/journal.c:1690:5-8: Unneeded variable: "ret".  Return "0" on line 1719
      
      Link: http://lkml.kernel.org/r/20190702175430.GA5882@hari-Inspiron-1545
      Signed-off-by: default avatarHariprasad Kelam <hariprasad.kelam@gmail.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Bharath Vedartham <linux.bhar@gmail.com>
      Cc: Hariprasad Kelam <hariprasad.kelam@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dc0dde61
    • YueHaibing's avatar
      fs/ufs/super.c: remove set but not used variable 'usb3' · ba542f20
      YueHaibing authored
      Fixes gcc '-Wunused-but-set-variable' warning:
      
        fs/ufs/super.c: In function ufs_statfs:
        fs/ufs/super.c:1409:32: warning: variable usb3 set but not used [-Wunused-but-set-variable]
      
      It is not used since commmit c596961d
      
       ("ufs: fix s_size/s_dsize
      users")
      
      Link: http://lkml.kernel.org/r/20190525140654.15924-1-yuehaibing@huawei.com
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Cc: Evgeniy Dushistov <dushistov@mail.ru>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ba542f20
    • Mathieu Malaterre's avatar
      fs/hfsplus/xattr.c: replace strncpy with memcpy · 29774f3f
      Mathieu Malaterre authored
      
      
      strncpy() was used to copy a fixed size buffer.  Since NUL-terminating
      string is not required here, prefer a memcpy function.  The generated
      code (ppc32) remains the same.
      
      Silence the following warning triggered using W=1:
      
        fs/hfsplus/xattr.c:410:3: warning: 'strncpy' output truncated before terminating nul copying 4 bytes from a string of the same length [-Wstringop-truncation]
      
      Link: http://lkml.kernel.org/r/20190529113341.11972-1-malat@debian.org
      Signed-off-by: default avatarMathieu Malaterre <malat@debian.org>
      Reviewed-by: default avatarVyacheslav Dubeyko <slava@dubeyko.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      29774f3f
    • Pedro Cuadra's avatar
      coda: add hinting support for partial file caching · a9fba24c
      Pedro Cuadra authored
      
      
      This adds support for partial file caching in Coda.  Every read, write
      and mmap informs the userspace cache manager about what part of a file
      is about to be accessed so that the cache manager can ensure the
      relevant parts are available before the operation is allowed to proceed.
      
      When a read or write operation completes, this is also reported to allow
      the cache manager to track when partially cached content can be
      released.
      
      If the cache manager does not support partial file caching, or when the
      entire file has been fetched into the local cache, the cache manager may
      return an EOPNOTSUPP error to indicate that intent upcalls are no longer
      necessary until the file is closed.
      
      [akpm@linux-foundation.org: little whitespace fixup]
      Link: http://lkml.kernel.org/r/20190618181301.6960-1-jaharkes@cs.cmu.edu
      Signed-off-by: default avatarPedro Cuadra <pjcuadra@gmail.com>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a9fba24c
    • Fabian Frederick's avatar
      coda: ftoc validity check integration · 5bb44810
      Fabian Frederick authored
      
      
      This patch moves cfi check in coda_ftoc() instead of repeating it in the
      wild.
      
        Module size
           text	   data	    bss	    dec	    hex	filename
          28297	   1040	    700	  30037	   7555	fs/coda/coda.ko.before
          28263	    980	    700	  29943	   74f7	fs/coda/coda.ko.after
      
      Link: http://lkml.kernel.org/r/a2c27663ec4547018c92d71c63b1dff4650b6546.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5bb44810
    • Fabian Frederick's avatar
      coda: remove sb test in coda_fid_to_inode() · 7f6118ce
      Fabian Frederick authored
      
      
      coda_fid_to_inode() is only called by coda_downcall() where sb is already
      being tested.
      
      Link: http://lkml.kernel.org/r/d2163b3136348faf83ba47dc2d65a5d0a9a135dd.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7f6118ce
    • Fabian Frederick's avatar
      coda: remove sysctl object from module when unused · 6975259a
      Fabian Frederick authored
      
      
      Inspired by NFS sysctl process
      
      Link: http://lkml.kernel.org/r/9afcc2cd09490849b309786bbf47fef75de7f91c.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6975259a
    • Fabian Frederick's avatar
      coda: add __init to init_coda_psdev() · f9484528
      Fabian Frederick authored
      
      
      init_coda_psdev() was only called by __init function.
      
      Link: http://lkml.kernel.org/r/a12a5a135fa6b0ea997e1a0af4be0a235c463a24.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f9484528
    • Fabian Frederick's avatar
      coda: use SIZE() for stat · 50e9a6ef
      Fabian Frederick authored
      
      
      max_t expression was already defined in coda sources
      
      Link: http://lkml.kernel.org/r/e6cda497ce8691db155cb35f8d13ea44ca6cedeb.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      50e9a6ef
    • Fabian Frederick's avatar
      coda: destroy mutex in put_super() · 79a0d65e
      Fabian Frederick authored
      
      
      We can safely destroy vc_mutex at the end of umount process.
      
      Link: http://lkml.kernel.org/r/f436f68908c467c5663bc6a9251b52cd7b95d2a5.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      79a0d65e
    • Jan Harkes's avatar
      coda: remove uapi/linux/coda_psdev.h · 6dc280eb
      Jan Harkes authored
      
      
      Nothing is left in this header that is used by userspace.
      
      Link: http://lkml.kernel.org/r/bb11378cef94739f2cf89425dd6d302a52c64480.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6dc280eb
    • David Howells's avatar
      coda: move internal defs out of include/linux/ [ver #2] · 8fc8b9df
      David Howells authored
      
      
      Move include/linux/coda_psdev.h to fs/coda/ as there's nothing else that
      uses it.
      
      Link: http://lkml.kernel.org/r/3ceeee0415a929b89fb02700b6b4b3a07938acb8.1558117389.git.jaharkes@cs.cmu.edu
      Link: https://patchwork.kernel.org/patch/10590257/
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Jan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8fc8b9df
    • Jan Harkes's avatar
      coda: bump module version · b6a18c60
      Jan Harkes authored
      
      
      The out of tree module version had been bumped several times already,
      but we haven't kept this in-tree one in sync, partly because most
      changes go from here to the out-of-tree copy.
      
      Link: http://lkml.kernel.org/r/8b0ab50a2da2f0180ac32c79d91811b4d1d0bd8b.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b6a18c60
    • Dan Carpenter's avatar
      coda: get rid of CODA_FREE() · 936dae45
      Dan Carpenter authored
      
      
      The CODA_FREE() macro just calls kvfree().  We can call that directly
      instead.
      
      Link: http://lkml.kernel.org/r/4950a94fd30ec5f84835dd4ca0bb67c0448672f5.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      936dae45
    • Dan Carpenter's avatar
      coda: get rid of CODA_ALLOC() · 4dc48193
      Dan Carpenter authored
      
      
      These days we have kvzalloc() so we can delete CODA_ALLOC().
      
      I made a couple related changes in coda_psdev_write().  First, I added
      some error handling to avoid a NULL dereference if the allocation
      failed.  Second, I used kvmalloc() instead of kvzalloc() because we copy
      over the memory on the next line so there is no need to zero it first.
      
      Link: http://lkml.kernel.org/r/e56010c822e7a7cbaa8a238cf82ad31c67eaa800.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4dc48193
    • Jan Harkes's avatar
      coda: change Coda's user api to use 64-bit time_t in timespec · 5e7c31df
      Jan Harkes authored
      
      
      Move the 32-bit time_t problems to userspace.
      
      Link: http://lkml.kernel.org/r/8d089068823bfb292a4020f773922fbd82ffad39.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5e7c31df
    • Arnd Bergmann's avatar
      coda: stop using 'struct timespec' in user API · 6ced9aa7
      Arnd Bergmann authored
      
      
      We exchange file timestamps with user space using psdev device
      read/write operations with a fixed but architecture specific binary
      layout.
      
      On 32-bit systems, this uses a 'timespec' structure that is defined by
      the C library to contain two 32-bit values for seconds and nanoseconds.
      As we get ready for the year 2038 overflow of the 32-bit signed seconds,
      the kernel now uses 64-bit timestamps internally, and user space will do
      the same change by changing the 'timespec' definition in the future.
      
      Unfortunately, this breaks the layout of the coda_vattr structure, so we
      need to redefine that in terms of something that does not change.  I'm
      introducing a new 'struct vtimespec' structure here that keeps the
      existing layout, and the same change has to be done in the coda user
      space copy of linux/coda.h before anyone can use that on a 32-bit
      architecture with 64-bit time_t.
      
      An open question is what should happen to actual times past y2038, as
      they are now truncated to the last valid date when sent to user space,
      and interpreted as pre-1970 times when a timestamp with the MSB set is
      read back into the kernel.  Alternatively, we could change the new
      timespec64_to_coda()/coda_to_timespec64() functions to use a different
      interpretation and extend the available range further to the future by
      disallowing past timestamps.  This would require more changes in the
      user space side though.
      
      Link: http://lkml.kernel.org/r/562b7324149461743e4fbe2fedbf7c242f7e274a.1558117389.git.jaharkes@cs.cmu.edu
      Link: https://patchwork.kernel.org/patch/10474735/
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Acked-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6ced9aa7
    • Colin Ian King's avatar
      coda: clean up indentation, replace spaces with tab · 85062213
      Colin Ian King authored
      
      
      Trivial fix to clean up indentation, replace spaces with tab
      
      Link: http://lkml.kernel.org/r/ffc2bfa5a37ffcdf891c51b2e2ed618103965b24.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      85062213
    • Jan Harkes's avatar
      uapi linux/coda_psdev.h: move CODA_REQ_ from uapi to kernel side headers · 2fe7491d
      Jan Harkes authored
      
      
      These constants only used internally and not exposed to userspace.
      
      Link: http://lkml.kernel.org/r/baeafc30dad70d8b422ee679420099c2d8aa7da0.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2fe7491d
    • Jan Harkes's avatar
      coda: don't try to print names that were considered too long · 9a05671d
      Jan Harkes authored
      
      
      Probably safer to just show the unexpected length and debug it from the
      userspace side.
      
      Link: http://lkml.kernel.org/r/582ae759a4fdfa31a64c35de489fa4efabac09d6.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9a05671d
    • Sam Protsenko's avatar
      coda: fix build using bare-metal toolchain · b2a57e33
      Sam Protsenko authored
      
      
      The kernel is self-contained project and can be built with bare-metal
      toolchain.  But bare-metal toolchain doesn't define __linux__.  Because
      of this u_quad_t type is not defined when using bare-metal toolchain and
      codafs build fails.  This patch fixes it by defining u_quad_t type
      unconditionally.
      
      Link: http://lkml.kernel.org/r/3cbb40b0a57b6f9923a9d67b53473c0b691a3eaa.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarSam Protsenko <semen.protsenko@linaro.org>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b2a57e33
    • Jan Harkes's avatar
      coda: potential buffer overflow in coda_psdev_write() · 6e51f8aa
      Jan Harkes authored
      
      
      Add checks to make sure the downcall message we got from the Coda cache
      manager is large enough to contain the data it is supposed to have.
      i.e.  when we get a CODA_ZAPDIR we can access &out->coda_zapdir.CodaFid.
      
      Link: http://lkml.kernel.org/r/894fb6b250add09e4e3935f14649f21284a5cb18.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6e51f8aa
    • Zhouyang Jia's avatar
      coda: add error handling for fget · 02551c23
      Zhouyang Jia authored
      
      
      When fget fails, the lack of error-handling code may cause unexpected
      results.
      
      This patch adds error-handling code after calling fget.
      
      Link: http://lkml.kernel.org/r/2514ec03df9c33b86e56748513267a80dd8004d9.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarZhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      02551c23
    • Mikko Rapeli's avatar
      uapi linux/coda_psdev.h: move upc_req definition from uapi to kernel side headers · f90fb3c7
      Mikko Rapeli authored
      
      
      Only users of upc_req in kernel side fs/coda/psdev.c and
      fs/coda/upcall.c already include linux/coda_psdev.h.
      
      Suggested by Jan Harkes <jaharkes@cs.cmu.edu> in
        https://lore.kernel.org/lkml/20150531111913.GA23377@cs.cmu.edu/
      
      Fixes these include/uapi/linux/coda_psdev.h compilation errors in userspace:
      
        linux/coda_psdev.h:12:19: error: field `uc_chain' has incomplete type
        struct list_head    uc_chain;
                         ^
        linux/coda_psdev.h:13:2: error: unknown type name `caddr_t'
        caddr_t             uc_data;
        ^
        linux/coda_psdev.h:14:2: error: unknown type name `u_short'
        u_short             uc_flags;
        ^
        linux/coda_psdev.h:15:2: error: unknown type name `u_short'
        u_short             uc_inSize;  /* Size is at most 5000 bytes */
        ^
        linux/coda_psdev.h:16:2: error: unknown type name `u_short'
        u_short             uc_outSize;
        ^
        linux/coda_psdev.h:17:2: error: unknown type name `u_short'
        u_short             uc_opcode;  /* copied from data to save lookup */
        ^
        linux/coda_psdev.h:19:2: error: unknown type name `wait_queue_head_t'
        wait_queue_head_t   uc_sleep;   /* process' wait queue */
        ^
      
      Link: http://lkml.kernel.org/r/9f99f5ce6a0563d5266e6cf7aa9585aac2cae971.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarMikko Rapeli <mikko.rapeli@iki.fi>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f90fb3c7
    • Mikko Rapeli's avatar
      uapi linux/coda.h: use __kernel_pid_t for userspace · 694a58e2
      Mikko Rapeli authored
      
      
      Part of a patch by Mikko Rapeli, as Arnd Bergman commented on the
      original patch.
      
         pid_t might differ between libc and the kernel, so the kernel
         interface has to use types that the kernel defines.
      
      Link: http://lkml.kernel.org/r/f374a71f4d351bc8c8b3ac18ad7765c88d806d10.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarMikko Rapeli <mikko.rapeli@iki.fi>
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      694a58e2
    • Jan Harkes's avatar
      coda: pass the host file in vma->vm_file on mmap · 7fa0a1da
      Jan Harkes authored
      
      
      Patch series "Coda updates".
      
      The following patch series is a collection of various fixes for Coda,
      most of which were collected from linux-fsdevel or linux-kernel but
      which have as yet not found their way upstream.
      
      This patch (of 22):
      
      Various file systems expect that vma->vm_file points at their own file
      handle, several use file_inode(vma->vm_file) to get at their inode or
      use vma->vm_file->private_data.  However the way Coda wrapped mmap on a
      host file broke this assumption, vm_file was still pointing at the Coda
      file and the host file systems would scribble over Coda's inode and
      private file data.
      
      This patch fixes the incorrect expectation and wraps vm_ops->open and
      vm_ops->close to allow Coda to track when the vm_area_struct is
      destroyed so we still release the reference on the Coda file handle at
      the right time.
      
      Link: http://lkml.kernel.org/r/0e850c6e59c0b147dc2dcd51a3af004c948c3697.1558117389.git.jaharkes@cs.cmu.edu
      Signed-off-by: default avatarJan Harkes <jaharkes@cs.cmu.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Colin Ian King <colin.king@canonical.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fabian Frederick <fabf@skynet.be>
      Cc: Mikko Rapeli <mikko.rapeli@iki.fi>
      Cc: Sam Protsenko <semen.protsenko@linaro.org>
      Cc: Yann Droneaud <ydroneaud@opteya.com>
      Cc: Zhouyang Jia <jiazhouyang09@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7fa0a1da
    • Anshuman Khandual's avatar
      mm, kprobes: generalize and rename notify_page_fault() as kprobe_page_fault() · b98cca44
      Anshuman Khandual authored
      Architectures which support kprobes have very similar boilerplate around
      calling kprobe_fault_handler().  Use a helper function in kprobes.h to
      unify them, based on the x86 code.
      
      This changes the behaviour for other architectures when preemption is
      enabled.  Previously, they would have disabled preemption while calling
      the kprobe handler.  However, preemption would be disabled if this fault
      was due to a kprobe, so we know the fault was not due to a kprobe
      handler and can simply return failure.
      
      This behaviour was introduced in commit a980c0ef
      
       ("x86/kprobes:
      Refactor kprobes_fault() like kprobe_exceptions_notify()")
      
      [anshuman.khandual@arm.com: export kprobe_fault_handler()]
        Link: http://lkml.kernel.org/r/1561133358-8876-1-git-send-email-anshuman.khandual@arm.com
      Link: http://lkml.kernel.org/r/1560420444-25737-1-git-send-email-anshuman.khandual@arm.com
      Signed-off-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
      Reviewed-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Christophe Leroy <christophe.leroy@c-s.fr>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Andrey Konovalov <andreyknvl@google.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b98cca44
    • Kees Cook's avatar
      init/Kconfig: fix neighboring typos · 92bae787
      Kees Cook authored
      
      
      This fixes a couple typos I noticed in the slab Kconfig:
      
      	sacrifies -> sacrifices
      	accellerate -> accelerate
      
      Seeing as no other instances of these typos are found elsewhere in the
      kernel and that I originally added one of the two, I can only assume
      working on slab must have caused damage to the spelling centers of my
      brain.
      
      Link: http://lkml.kernel.org/r/201905292203.CD000546EB@keescook
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      92bae787
    • Alexey Dobriyan's avatar
      fs/binfmt_elf.c: delete stale comment · aa94b1dc
      Alexey Dobriyan authored
      "passed_fileno" variable was deleted 11 years ago in 2.6.25.
      
      Link: http://lkml.kernel.org/r/20190529201747.GA23248@avx2
      Fixes: d20894a2
      
       ("Remove a.out interpreter support in ELF loader")
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aa94b1dc
    • YueHaibing's avatar
      fs/binfmt_flat.c: remove set but not used variable 'inode' · 1b113e04
      YueHaibing authored
      
      
      Fixes gcc '-Wunused-but-set-variable' warning:
      
        fs/binfmt_flat.c: In function load_flat_file:
        fs/binfmt_flat.c:419:16: warning: variable inode set but not used [-Wunused-but-set-variable]
      
      It's never used and can be removed.
      
      Link: http://lkml.kernel.org/r/20190525125341.9844-1-yuehaibing@huawei.com
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1b113e04
    • Matteo Croce's avatar
      checkpatch.pl: warn on duplicate sysctl local variable · 6a8d76cb
      Matteo Croce authored
      
      
      Commit d91bff3011cf ("proc/sysctl: add shared variables for range
      check") adds some shared const variables to be used instead of a local
      copy in each source file.  Warn when a chunk duplicates one of these
      values in a ctl_table struct:
      
          $ scripts/checkpatch.pl 0001-test-commit.patch
          WARNING: duplicated sysctl range checking value 'zero', consider using the shared one in include/linux/sysctl.h
          #27: FILE: arch/arm/kernel/isa.c:48:
          +               .extra1         = &zero,
      
          WARNING: duplicated sysctl range checking value 'int_max', consider using the shared one in include/linux/sysctl.h
          #28: FILE: arch/arm/kernel/isa.c:49:
          +               .extra2         = &int_max,
      
          total: 0 errors, 2 warnings, 14 lines checked
      
      Link: http://lkml.kernel.org/r/20190531131422.14970-1-mcroce@redhat.com
      Signed-off-by: default avatarMatteo Croce <mcroce@redhat.com>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Joe Perches <joe@perches.com>
      Cc: Aaron Tomlin <atomlin@redhat.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6a8d76cb
    • Michel Lespinasse's avatar
      lib/rbtree: avoid generating code twice for the cached versions · 9f973cb3
      Michel Lespinasse authored
      
      
      As was already noted in rbtree.h, the logic to cache rb_first (or
      rb_last) can easily be implemented externally to the core rbtree api.
      
      Change the implementation to do just that.  Previously the update of
      rb_leftmost was wired deeper into the implmentation, but there were some
      disadvantages to that - mostly, lib/rbtree.c had separate instantiations
      for rb_insert_color() vs rb_insert_color_cached(), as well as rb_erase()
      vs rb_erase_cached(), which were doing exactly the same thing save for
      the rb_leftmost update at the start of either function.
      
         text	   data	    bss	    dec	    hex	filename
         5405	    120	      0	   5525	   1595	lib/rbtree.o-vanilla
         3827	     96	      0	   3923	    f53	lib/rbtree.o-patch
      
      [dave@stgolabs.net: changelog addition]
        Link: http://lkml.kernel.org/r/20190628171416.by5gdizl3rcxk5h5@linux-r8p5
      [akpm@linux-foundation.org: coding-style fixes]
      Link: http://lkml.kernel.org/r/20190628045008.39926-1-walken@google.com
      Signed-off-by: default avatarMichel Lespinasse <walken@google.com>
      Acked-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9f973cb3
    • Alexander Potapenko's avatar
      lib/test_meminit.c: minor test fixes · 4ab7ace4
      Alexander Potapenko authored
      
      
      Fix the following issues in test_meminit.c:
       - |size| in fill_with_garbage_skip() should be signed so that it
         doesn't overflow if it's not aligned on sizeof(*p);
       - fill_with_garbage_skip() should actually skip |skip| bytes;
       - do_kmem_cache_size() should deallocate memory in the RCU case.
      
      Link: http://lkml.kernel.org/r/20190626133135.217355-1-glider@google.com
      Fixes: 7e659650cbda ("lib: introduce test_meminit module")
      Fixes: 94e8988d91c7 ("lib/test_meminit.c: fix -Wmaybe-uninitialized false positive")
      Signed-off-by: default avatarAlexander Potapenko <glider@google.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Kees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4ab7ace4
    • Arnd Bergmann's avatar
      lib/test_meminit.c: fix -Wmaybe-uninitialized false positive · d3a81161
      Arnd Bergmann authored
      
      
      The conditional logic is too complicated for the compiler to fully
      comprehend:
      
        lib/test_meminit.c: In function 'test_meminit_init':
        lib/test_meminit.c:236:5: error: 'buf_copy' may be used uninitialized in this function [-Werror=maybe-uninitialized]
             kfree(buf_copy);
             ^~~~~~~~~~~~~~~
        lib/test_meminit.c:201:14: note: 'buf_copy' was declared here
      
      Simplify it by splitting out the non-rcu section.
      
      Link: http://lkml.kernel.org/r/20190617131210.2190280-1-arnd@arndb.de
      Fixes: af734ee6ec85 ("lib: introduce test_meminit module")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarAlexander Potapenko <glider@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d3a81161
    • Jonathan Corbet's avatar
      lib/string_helpers: fix some kerneldoc warnings · b4658cdd
      Jonathan Corbet authored
      
      
      Due to some sad limitations in how kerneldoc comments are parsed, the
      documentation in lib/string_helpers.c generates these warnings:
      
        lib/string_helpers.c:236: WARNING: Unexpected indentation.
        lib/string_helpers.c:241: WARNING: Block quote ends without a blank line; unexpected unindent.
        lib/string_helpers.c:446: WARNING: Unexpected indentation.
        lib/string_helpers.c:451: WARNING: Block quote ends without a blank line; unexpected unindent.
        lib/string_helpers.c:474: WARNING: Unexpected indentation.
      
      Rework the comments to obtain something like the desired result.
      
      Link: http://lkml.kernel.org/r/20190607110952.409011ba@lwn.net
      Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b4658cdd