1. 23 Jul, 2017 1 commit
  2. 18 Jul, 2017 1 commit
    • Tejun Heo's avatar
      cgroup: create dfl_root files on subsys registration · 7af608e4
      Tejun Heo authored
      On subsystem registration, css_populate_dir() is not called on the new
      root css, so the interface files for the subsystem on cgrp_dfl_root
      aren't created on registration.  This is a residue from the days when
      cgrp_dfl_root was used only as the parking spot for unused subsystems,
      which no longer is true as it's used as the root for cgroup2.
      
      This is often fine as later operations tend to create them as a part
      of mount (cgroup1) or subtree_control operations (cgroup2); however,
      it's not difficult to mount cgroup2 with the controller interface
      files missing as Waiman found out.
      
      Fix it by invoking css_populate_dir() on the root css on subsys
      registration.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-and-tested-by: default avatarWaiman Long <longman@redhat.com>
      Cc: stable@vger.kernel.org # v4.5+
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      7af608e4
  3. 08 Jul, 2017 9 commits
    • Tejun Heo's avatar
      cgroup: don't call migration methods if there are no tasks to migrate · 61046727
      Tejun Heo authored
      Subsystem migration methods shouldn't be called for empty migrations.
      cgroup_migrate_execute() implements this guarantee by bailing early if
      there are no source css_sets.  This used to be correct before
      a79a908f ("cgroup: introduce cgroup namespaces"), but no longer
      since the commit because css_sets can stay pinned without tasks in
      them.
      
      This caused cgroup_migrate_execute() call into cpuset migration
      methods with an empty cgroup_taskset.  cpuset migration methods
      correctly assume that cgroup_taskset_first() never returns NULL;
      however, due to the bug, it can, leading to the following oops.
      
        Unable to handle kernel paging request for data at address 0x00000960
        Faulting instruction address: 0xc0000000001d6868
        Oops: Kernel access of bad area, sig: 11 [#1]
        ...
        CPU: 14 PID: 16947 Comm: kworker/14:0 Tainted: G        W
        4.12.0-rc4-next-20170609 #2
        Workqueue: events cpuset_hotplug_workfn
        task: c00000000ca60580 task.stack: c00000000c728000
        NIP: c0000000001d6868 LR: c0000000001d6858 CTR: c0000000001d6810
        REGS: c00000000c72b720 TRAP: 0300   Tainted: GW (4.12.0-rc4-next-20170609)
        MSR: 8000000000009033 <SF,EE,ME,IR,DR,RI,LE>  CR: 44722422  XER: 20000000
        CFAR: c000000000008710 DAR: 0000000000000960 DSISR: 40000000 SOFTE: 1
        GPR00: c0000000001d6858 c00000000c72b9a0 c000000001536e00 0000000000000000
        GPR04: c00000000c72b9c0 0000000000000000 c00000000c72bad0 c000000766367678
        GPR08: c000000766366d10 c00000000c72b958 c000000001736e00 0000000000000000
        GPR12: c0000000001d6810 c00000000e749300 c000000000123ef8 c000000775af4180
        GPR16: 0000000000000000 0000000000000000 c00000075480e9c0 c00000075480e9e0
        GPR20: c00000075480e8c0 0000000000000001 0000000000000000 c00000000c72ba20
        GPR24: c00000000c72baa0 c00000000c72bac0 c000000001407248 c00000000c72ba20
        GPR28: c00000000141fc80 c00000000c72bac0 c00000000c6bc790 0000000000000000
        NIP [c0000000001d6868] cpuset_can_attach+0x58/0x1b0
        LR [c0000000001d6858] cpuset_can_attach+0x48/0x1b0
        Call Trace:
        [c00000000c72b9a0] [c0000000001d6858] cpuset_can_attach+0x48/0x1b0 (unreliable)
        [c00000000c72ba00] [c0000000001cbe80] cgroup_migrate_execute+0xb0/0x450
        [c00000000c72ba80] [c0000000001d3754] cgroup_transfer_tasks+0x1c4/0x360
        [c00000000c72bba0] [c0000000001d923c] cpuset_hotplug_workfn+0x86c/0xa20
        [c00000000c72bca0] [c00000000011aa44] process_one_work+0x1e4/0x580
        [c00000000c72bd30] [c00000000011ae78] worker_thread+0x98/0x5c0
        [c00000000c72bdc0] [c000000000124058] kthread+0x168/0x1b0
        [c00000000c72be30] [c00000000000b2e8] ret_from_kernel_thread+0x5c/0x74
        Instruction dump:
        f821ffa1 7c7d1b78 60000000 60000000 38810020 7fa3eb78 3f42ffed 4bff4c25
        60000000 3b5a0448 3d420020 eb610020 <e9230960> 7f43d378 e9290000 f92af200
        ---[ end trace dcaaf98fb36d9e64 ]---
      
      This patch fixes the bug by adding an explicit nr_tasks counter to
      cgroup_taskset and skipping calling the migration methods if the
      counter is zero.  While at it, remove the now spurious check on no
      source css_sets.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-and-tested-by: default avatarAbdul Haleem <abdhalee@linux.vnet.ibm.com>
      Cc: Roman Gushchin <guro@fb.com>
      Cc: stable@vger.kernel.org # v4.6+
      Fixes: a79a908f ("cgroup: introduce cgroup namespaces")
      Link: http://lkml.kernel.org/r/1497266622.15415.39.camel@abdul.in.ibm.com
      61046727
    • Linus Torvalds's avatar
      Merge branch 'work.read_write' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · cee37d83
      Linus Torvalds authored
      Pull read/write fix from Al Viro:
       "file_start_write()/file_end_write() got mixed into vfs_iter_write() by
        accident; that's a deadlock for all existing callers - they already do
        that, some - quite a bit outside.
      
        Easily fixed, fortunately"
      
      * 'work.read_write' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        move file_{start,end}_write() out of do_iter_write()
      cee37d83
    • Linus Torvalds's avatar
      Merge branch 'uaccess-work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 6a37e940
      Linus Torvalds authored
      Pull iov_iter hardening from Al Viro:
       "This is the iov_iter/uaccess/hardening pile.
      
        For one thing, it trims the inline part of copy_to_user/copy_from_user
        to the minimum that *does* need to be inlined - object size checks,
        basically. For another, it sanitizes the checks for iov_iter
        primitives. There are 4 groups of checks: access_ok(), might_fault(),
        object size and KASAN.
      
         - access_ok() had been verified by whoever had set the iov_iter up.
           However, that has happened in a function far away, so proving that
           there's no path to actual copying bypassing those checks is hard
           and proving that iov_iter has not been buggered in the meanwhile is
           also not pleasant. So we want those redone in actual
           copyin/copyout.
      
         - might_fault() is better off consolidated - we know whether it needs
           to be checked as soon as we enter iov_iter primitive and observe
           the iov_iter flavour. No need to wait until the copyin/copyout. The
           call chains are short enough to make sure we won't miss anything -
           in fact, it's more robust that way, since there are cases where we
           do e.g. forced fault-in before getting to copyin/copyout. It's not
           quite what we need to check (in particular, combination of
           iovec-backed and set_fs(KERNEL_DS) is almost certainly a bug, not a
           cause to skip checks), but that's for later series. For now let's
           keep might_fault().
      
         - KASAN checks belong in copyin/copyout - at the same level where
           other iov_iter flavours would've hit them in memcpy().
      
         - object size checks should apply to *all* iov_iter flavours, not
           just iovec-backed ones.
      
        There are two groups of primitives - one gets the kernel object
        described as pointer + size (copy_to_iter(), etc.) while another gets
        it as page + offset + size (copy_page_to_iter(), etc.)
      
        For the first group the checks are best done where we actually have a
        chance to find the object size. In other words, those belong in inline
        wrappers in uio.h, before calling into iov_iter.c. Same kind as we
        have for inlined part of copy_to_user().
      
        For the second group there is no object to look at - offset in page is
        just a number, it bears no type information. So we do them in the
        common helper called by iov_iter.c primitives of that kind. All it
        currently does is checking that we are not trying to access outside of
        the compound page; eventually we might want to add some sanity checks
        on the page involved.
      
        So the things we need in copyin/copyout part of iov_iter.c do not
        quite match anything in uaccess.h (we want no zeroing, we *do* want
        access_ok() and KASAN and we want no might_fault() or object size
        checks done on that level). OTOH, these needs are simple enough to
        provide a couple of helpers (static in iov_iter.c) doing just what we
        need..."
      
      * 'uaccess-work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        iov_iter: saner checks on copyin/copyout
        iov_iter: sanity checks for copy to/from page primitives
        iov_iter/hardening: move object size checks to inlined part
        copy_{to,from}_user(): consolidate object size checks
        copy_{from,to}_user(): move kasan checks and might_fault() out-of-line
      6a37e940
    • Kees Cook's avatar
      exec: Limit arg stack to at most 75% of _STK_LIM · da029c11
      Kees Cook authored
      To avoid pathological stack usage or the need to special-case setuid
      execs, just limit all arg stack usage to at most 75% of _STK_LIM (6MB).
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      da029c11
    • Linus Torvalds's avatar
      Merge tag 'for-linus-v4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 088737f4
      Linus Torvalds authored
      Pull Writeback error handling updates from Jeff Layton:
       "This pile represents the bulk of the writeback error handling fixes
        that I have for this cycle. Some of the earlier patches in this pile
        may look trivial but they are prerequisites for later patches in the
        series.
      
        The aim of this set is to improve how we track and report writeback
        errors to userland. Most applications that care about data integrity
        will periodically call fsync/fdatasync/msync to ensure that their
        writes have made it to the backing store.
      
        For a very long time, we have tracked writeback errors using two flags
        in the address_space: AS_EIO and AS_ENOSPC. Those flags are set when a
        writeback error occurs (via mapping_set_error) and are cleared as a
        side-effect of filemap_check_errors (as you noted yesterday). This
        model really sucks for userland.
      
        Only the first task to call fsync (or msync or fdatasync) will see the
        error. Any subsequent task calling fsync on a file will get back 0
        (unless another writeback error occurs in the interim). If I have
        several tasks writing to a file and calling fsync to ensure that their
        writes got stored, then I need to have them coordinate with one
        another. That's difficult enough, but in a world of containerized
        setups that coordination may even not be possible.
      
        But wait...it gets worse!
      
        The calls to filemap_check_errors can be buried pretty far down in the
        call stack, and there are internal callers of filemap_write_and_wait
        and the like that also end up clearing those errors. Many of those
        callers ignore the error return from that function or return it to
        userland at nonsensical times (e.g. truncate() or stat()). If I get
        back -EIO on a truncate, there is no reason to think that it was
        because some previous writeback failed, and a subsequent fsync() will
        (incorrectly) return 0.
      
        This pile aims to do three things:
      
         1) ensure that when a writeback error occurs that that error will be
            reported to userland on a subsequent fsync/fdatasync/msync call,
            regardless of what internal callers are doing
      
         2) report writeback errors on all file descriptions that were open at
            the time that the error occurred. This is a user-visible change,
            but I think most applications are written to assume this behavior
            anyway. Those that aren't are unlikely to be hurt by it.
      
         3) document what filesystems should do when there is a writeback
            error. Today, there is very little consistency between them, and a
            lot of cargo-cult copying. We need to make it very clear what
            filesystems should do in this situation.
      
        To achieve this, the set adds a new data type (errseq_t) and then
        builds new writeback error tracking infrastructure around that. Once
        all of that is in place, we change the filesystems to use the new
        infrastructure for reporting wb errors to userland.
      
        Note that this is just the initial foray into cleaning up this mess.
        There is a lot of work remaining here:
      
         1) convert the rest of the filesystems in a similar fashion. Once the
            initial set is in, then I think most other fs' will be fairly
            simple to convert. Hopefully most of those can in via individual
            filesystem trees.
      
         2) convert internal waiters on writeback to use errseq_t for
            detecting errors instead of relying on the AS_* flags. I have some
            draft patches for this for ext4, but they are not quite ready for
            prime time yet.
      
        This was a discussion topic this year at LSF/MM too. If you're
        interested in the gory details, LWN has some good articles about this:
      
            https://lwn.net/Articles/718734/
            https://lwn.net/Articles/724307/"
      
      * tag 'for-linus-v4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        btrfs: minimal conversion to errseq_t writeback error reporting on fsync
        xfs: minimal conversion to errseq_t writeback error reporting
        ext4: use errseq_t based error handling for reporting data writeback errors
        fs: convert __generic_file_fsync to use errseq_t based reporting
        block: convert to errseq_t based writeback error tracking
        dax: set errors in mapping when writeback fails
        Documentation: flesh out the section in vfs.txt on storing and reporting writeback errors
        mm: set both AS_EIO/AS_ENOSPC and errseq_t in mapping_set_error
        fs: new infrastructure for writeback error handling and reporting
        lib: add errseq_t type and infrastructure for handling it
        mm: don't TestClearPageError in __filemap_fdatawait_range
        mm: clear AS_EIO/AS_ENOSPC when writeback initiation fails
        jbd2: don't clear and reset errors after waiting on writeback
        buffer: set errors in mapping at the time that the error occurs
        fs: check for writeback errors after syncing out buffers in generic_file_fsync
        buffer: use mapping_set_error instead of setting the flag
        mm: fix mapping_set_error call in me_pagecache_dirty
      088737f4
    • Linus Torvalds's avatar
      Merge tag 'for-linus-v4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 33198c16
      Linus Torvalds authored
      Pull Writeback error handling fixes from Jeff Layton:
       "The main rationale for all of these changes is to tighten up writeback
        error reporting to userland. There are many ways now that writeback
        errors can be lost, such that fsync/fdatasync/msync return 0 when
        writeback actually failed.
      
        This pile contains a small set of cleanups and writeback error
        handling fixes that I was able to break off from the main pile (#2).
      
        Two of the patches in this pile are trivial. The exceptions are the
        patch to fix up error handling in write_one_page, and the patch to
        make JFS pay attention to write_one_page errors"
      
      * tag 'for-linus-v4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        fs: remove call_fsync helper function
        mm: clean up error handling in write_one_page
        JFS: do not ignore return code from write_one_page()
        mm: drop "wait" parameter from write_one_page()
      33198c16
    • Linus Torvalds's avatar
      Merge tag 'cifs-bug-fixes-for-4.13' of git://git.samba.org/sfrench/cifs-2.6 · 3ea4fcc5
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "First set of CIFS/SMB3 fixes for the merge window. Also improves POSIX
        character mapping for SMB3"
      
      * tag 'cifs-bug-fixes-for-4.13' of git://git.samba.org/sfrench/cifs-2.6:
        CIFS: fix circular locking dependency
        cifs: set oparms.create_options rather than or'ing in CREATE_OPEN_BACKUP_INTENT
        cifs: Do not modify mid entry after submitting I/O in cifs_call_async
        CIFS: add SFM mapping for 0x01-0x1F
        cifs: hide unused functions
        cifs: Use smb 2 - 3 and cifsacl mount options getacl functions
        cifs: prototype declaration and definition for smb 2 - 3 and cifsacl mount options
        CIFS: add CONFIG_CIFS_DEBUG_KEYS to dump encryption keys
        cifs: set mapping error when page writeback fails in writepage or launder_pages
        SMB3: Enable encryption for SMB3.1.1
      3ea4fcc5
    • Linus Torvalds's avatar
      Merge tag 'gfs2-4.13.fixes.addendum' of... · 1a86fc75
      Linus Torvalds authored
      Merge tag 'gfs2-4.13.fixes.addendum' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2
      
      Pull GFS2 fix from Bob Peterson:
       "Sorry for the additional merge request, but Andreas discovered this
        problem soon after you processed our last gfs2 merge.
      
        This fixes a regression introduced by a patch we did in mid-2015
        (commit 88ffbf3e: "GFS2: Use resizable hash table for glocks"), so
        best to get it fixed. Some code was reverted that should not have
        been.
      
        The patch from Andreas Gruenbacher just re-adds code that had been
        there originally"
      
      * tag 'gfs2-4.13.fixes.addendum' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Fix glock rhashtable rcu bug
      1a86fc75
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · a7d40268
      Linus Torvalds authored
      Pull security layer fixes from James Morris:
       "Bugfixes for TPM and SELinux"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        IB/core: Fix static analysis warning in ib_policy_change_task
        IB/core: Fix uninitialized variable use in check_qp_port_pkey_settings
        tpm: do not suspend/resume if power stays on
        tpm: use tpm2_pcr_read() in tpm2_do_selftest()
        tpm: use tpm_buf functions in tpm2_pcr_read()
        tpm_tis: make ilb_base_addr static
        tpm: consolidate the TPM startup code
        tpm: Enable CLKRUN protocol for Braswell systems
        tpm/tpm_crb: fix priv->cmd_size initialisation
        tpm: fix a kernel memory leak in tpm-sysfs.c
        tpm: Issue a TPM2_Shutdown for TPM2 devices.
        Add "shutdown" to "struct class".
      a7d40268
  4. 07 Jul, 2017 29 commits
    • Linus Torvalds's avatar
      Merge tag 'kbuild-thinar-v4.13' of... · 98ced886
      Linus Torvalds authored
      Merge tag 'kbuild-thinar-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild thin archives updates from Masahiro Yamada:
       "Thin archives migration by Nicholas Piggin.
      
        THIN_ARCHIVES has been available for a while as an optional feature
        only for PowerPC architecture, but we do not need two different
        intermediate-artifact schemes.
      
        Using thin archives instead of conventional incremental linking has
        various advantages:
      
         - save disk space for builds
      
         - speed-up building a little
      
         - fix some link issues (for example, allyesconfig on ARM) due to more
           flexibility for the final linking
      
         - work better with dead code elimination we are planning
      
        As discussed before, this migration has been done unconditionally so
        that any problems caused by this will show up with "git bisect".
      
        With testing with 0-day and linux-next, some architectures actually
        showed up problems, but they were trivial and all fixed now"
      
      * tag 'kbuild-thinar-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        tile: remove unneeded extra-y in Makefile
        kbuild: thin archives make default for all archs
        x86/um: thin archives build fix
        tile: thin archives fix linking
        ia64: thin archives fix linking
        sh: thin archives fix linking
        kbuild: handle libs-y archives separately from built-in.o archives
        kbuild: thin archives use P option to ar
        kbuild: thin archives final link close --whole-archives option
        ia64: remove unneeded extra-y in Makefile.gate
        tile: fix dependency and .*.cmd inclusion for incremental build
        sparc64: Use indirect calls in hamming weight stubs
      98ced886
    • Linus Torvalds's avatar
      Merge tag 'kbuild-misc-v4.13' of... · 16ffc4c3
      Linus Torvalds authored
      Merge tag 'kbuild-misc-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull misc Kbuild updates from Masahiro Yamada:
      
       - Use more portable shebang for Perl scripts
      
       - Remove trailing spaces from GCC version in kernel log
      
       - Make initramfs generation deterministic
      
      * tag 'kbuild-misc-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: create deterministic initramfs directory listings
        scripts/mkcompile_h: Remove trailing spaces from compiler version
        scripts: Switch to more portable Perl shebang
      16ffc4c3
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 58f051fc
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Clean up Makefiles and scripts
      
       - Improve clang support
      
       - Remove unneeded genhdr-y syntax
      
       - Remove unneeded cc-option-align macro
      
       - Introduce __cc-option macro and use it to fix x86 boot code compiler
         flags
      
      * tag 'kbuild-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: improve comments on KBUILD_SRC
        x86/build: Specify stack alignment for clang
        x86/build: Use __cc-option for boot code compiler options
        kbuild: Add __cc-option macro
        kbuild: remove cc-option-align
        kbuild: replace genhdr-y with generated-y
        kbuild: clang: Disable 'address-of-packed-member' warning
        kbuild: remove duplicated arch/*/include/generated/uapi include path
        kbuild: speed up checksyscalls.sh
        kbuild: simplify silent build (-s) detection
      58f051fc
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.13-rc1-update' of... · ef3ad089
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.13-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest updates from Shuah Khan:
       "This update consists of:
      
         - TAP13 framework and changes to some tests to convert to TAP13.
           Converting kselftest output to standard format will help identify
           run to run differences and pin point failures easily. TAP13 format
           has been in use for several years and the output is human friendly.
      
           Please find the specification:
             https://testanything.org/tap-version-13-specification.html
      
           Credit goes to Tim Bird for recommending TAP13 as a suitable
           format, and to Grag KH for kick starting the work with help from
           Paul Elder and Alice Ferrazzi
      
           The first phase of the TAp13 conversion is included in this update.
           Future updates will include updates to rest of the tests.
      
         - Masami Hiramatsu fixed ftrace to run on 4.9 stable kernels.
      
         - Kselftest documnetation has been converted to ReST format. Document
           now has a new home under Documentation/dev-tools.
      
         - kselftest_harness.h is now available for general use as a result of
           Mickaël Salaün's work.
      
         - Several fixes to skip and/or fail tests gracefully on older
           releases"
      
      * tag 'linux-kselftest-4.13-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (48 commits)
        selftests: membarrier: use ksft_* var arg msg api
        selftests: breakpoints: breakpoint_test_arm64: convert test to use TAP13
        selftests: breakpoints: step_after_suspend_test use ksft_* var arg msg api
        selftests: breakpoint_test: use ksft_* var arg msg api
        kselftest: add ksft_print_msg() function to output general information
        kselftest: make ksft_* output functions variadic
        selftests/capabilities: Fix the test_execve test
        selftests: intel_pstate: add .gitignore
        selftests: fix memory-hotplug test
        selftests: add missing test name in memory-hotplug test
        selftests: check percentage range for memory-hotplug test
        selftests: check hot-pluggagble memory for memory-hotplug test
        selftests: typo correction for memory-hotplug test
        selftests: ftrace: Use md5sum to take less time of checking logs
        tools/testing/selftests/sysctl: Add pre-check to the value of writes_strict
        kselftest.rst: do some adjustments after ReST conversion
        selftest/net/Makefile: Specify output with $(OUTPUT)
        selftest/intel_pstate/aperf: Use LDLIBS instead of LDFLAGS
        selftest/memfd/Makefile: Fix build error
        selftests: lib: Skip tests on missing test modules
        ...
      ef3ad089
    • Linus Torvalds's avatar
      Merge tag 'openrisc-for-linus' of git://github.com/openrisc/linux · 37949075
      Linus Torvalds authored
      Pull OpenRISC updates from Stafford Horne:
       "Openrisc fixes for this 4.13 merge window, there is not really much
        here:
      
         - include cleanups, one with should reduce build time slightly
      
         - switch to new toolchain to new (>2 year old) toolchain prefix"
      
      * tag 'openrisc-for-linus' of git://github.com/openrisc/linux:
        openrisc: defconfig: Cleanup from old Kconfig options
        openrisc: explicitly include linux/bug.h in asm/fixmap.h
        openrisc: Switch to use export.h instead of module.h
        openrisc: Change toolchain from or32- to or1k-
      37949075
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d691b7e7
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Highlights include:
      
         - Support for STRICT_KERNEL_RWX on 64-bit server CPUs.
      
         - Platform support for FSP2 (476fpe) board
      
         - Enable ZONE_DEVICE on 64-bit server CPUs.
      
         - Generic & powerpc spin loop primitives to optimise busy waiting
      
         - Convert VDSO update function to use new update_vsyscall() interface
      
         - Optimisations to hypercall/syscall/context-switch paths
      
         - Improvements to the CPU idle code on Power8 and Power9.
      
        As well as many other fixes and improvements.
      
        Thanks to: Akshay Adiga, Andrew Donnellan, Andrew Jeffery, Anshuman
        Khandual, Anton Blanchard, Balbir Singh, Benjamin Herrenschmidt,
        Christophe Leroy, Christophe Lombard, Colin Ian King, Dan Carpenter,
        Gautham R. Shenoy, Hari Bathini, Ian Munsie, Ivan Mikhaylov, Javier
        Martinez Canillas, Madhavan Srinivasan, Masahiro Yamada, Matt Brown,
        Michael Neuling, Michal Suchanek, Murilo Opsfelder Araujo, Naveen N.
        Rao, Nicholas Piggin, Oliver O'Halloran, Paul Mackerras, Pavel Machek,
        Russell Currey, Santosh Sivaraj, Stephen Rothwell, Thiago Jung
        Bauermann, Yang Li"
      
      * tag 'powerpc-4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (158 commits)
        powerpc/Kconfig: Enable STRICT_KERNEL_RWX for some configs
        powerpc/mm/radix: Implement STRICT_RWX/mark_rodata_ro() for Radix
        powerpc/mm/hash: Implement mark_rodata_ro() for hash
        powerpc/vmlinux.lds: Align __init_begin to 16M
        powerpc/lib/code-patching: Use alternate map for patch_instruction()
        powerpc/xmon: Add patch_instruction() support for xmon
        powerpc/kprobes/optprobes: Use patch_instruction()
        powerpc/kprobes: Move kprobes over to patch_instruction()
        powerpc/mm/radix: Fix execute permissions for interrupt_vectors
        powerpc/pseries: Fix passing of pp0 in updatepp() and updateboltedpp()
        powerpc/64s: Blacklist rtas entry/exit from kprobes
        powerpc/64s: Blacklist functions invoked on a trap
        powerpc/64s: Un-blacklist system_call() from kprobes
        powerpc/64s: Move system_call() symbol to just after setting MSR_EE
        powerpc/64s: Blacklist system_call() and system_call_common() from kprobes
        powerpc/64s: Convert .L__replay_interrupt_return to a local label
        powerpc64/elfv1: Only dereference function descriptor for non-text symbols
        cxl: Export library to support IBM XSL
        powerpc/dts: Use #include "..." to include local DT
        powerpc/perf/hv-24x7: Aggregate result elements on POWER9 SMT8
        ...
      d691b7e7
    • Linus Torvalds's avatar
      vfs: fix flock compat thinko · b59eea55
      Linus Torvalds authored
      Michael Ellerman reported that commit 8c6657cb ("Switch flock
      copyin/copyout primitives to copy_{from,to}_user()") broke his
      networking on a bunch of PPC machines (64-bit kernel, 32-bit userspace).
      
      The reason is a brown-paper bug by that commit, which had the arguments
      to "copy_flock_fields()" in the wrong order, breaking the compat
      handling for file locking.  Apparently very few people run 32-bit user
      space on x86 any more, so the PPC people got the honor of noticing this
      "feature".
      
      Michael also sent a minimal diff that just changed the order of the
      arguments in that macro.
      
      This is not that minimal diff.
      
      This not only changes the order of the arguments in the macro, it also
      changes them to be pointers (to be consistent with all the other uses of
      those pointers), and makes the functions that do all of this also have
      the proper "const" attribution on the source pointers in order to make
      issues like that (using the source as a destination) be really obvious.
      Reported-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Acked-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b59eea55
    • Linus Torvalds's avatar
      Merge tag 'usb-4.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 64813520
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some remaining USB fixes for 4.13-rc1. They were originally
        scheduled for 4.12-final, but I didn't send them to you in time.
        Because of that, they were in a separate branch from the larger USB
        set of patches, so here they are in a separate pull request.
      
        Nothing major here a all, just three small patches:
      
         - some usb-serial new device ids
         - xhci bugfix for some crazy AMD hardware
      
        All of these have been in linux-next for a long time with no reported
        issues"
      
      * tag 'usb-4.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        xhci: Limit USB2 port wake support for AMD Promontory hosts
        USB: serial: qcserial: new Sierra Wireless EM7305 device ID
        USB: serial: option: add two Longcheer device ids
      64813520
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · df7cb187
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "Core Framework:
         - Report correct error status to user
      
        Fix-ups:
         - Move Backlight headers out of I2C (adp8860, adp8870)"
      
      * tag 'backlight-next-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        video: adp8870: move header file out of I2C realm
        backlight: adp8860: Move header file out of I2C realm
        backlight: Report error on failure
      df7cb187
    • Linus Torvalds's avatar
      Merge (most of) tag 'mfd-next-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 6972b007
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Drivers:
         - Intel Cherry Trail Whiskey Cove PMIC
         - TI LP87565 PMIC
      
        New Device Support:
         - Add support for Cannonlake to intel-lpss-pci
         - Add support for Simatic IOT2000 to intel_quark_i2c_gpio
      
        New Functionality:
         - Add Regulator support (axp20x)
      
        Fix-ups:
         - Rework IRQ handling (intel_soc_pmic_bxtwc, rtsx_pcr, cros_ec)
         - Remove unused/unwelcome code (ipaq-micro, wm831x-core, da9062-core)
         - Provide deregistration on unbind (rn5t618)
         - Rework DT code/documentation (arizona)
         - Constify things (fsl-imx25-tsadc)
         - MAINTAINERS updates (DA9062/61)
         - Kconfig configuration adaptions (INTEL_SOC_PMIC, MFD_AXP20X_I2C)
         - Switch to DMI matching (intel_quark_i2c_gpio)
         - Provide an appropriate level of error checking (wm831x-{i2c,spi},
           twl4030-irq, tc6393xb)
         - Make use of devm_* (resource handling) calls (intel_soc_pmic_bxtwc,
           stm32-timers, atmel-flexcom, cros_ec, fsl-imx25-tsadc,
           exynos-lpass, palmas, qcom-spmi-pmic, smsc-ece1099,
           motorola-cpcap)"
      
      [ Skipped the last commit in that series that added eight thousand
        lines of pointless repeated register definitions.  - Linus ]
      
      * tag 'mfd-next-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (38 commits)
        mfd: Add LP87565 PMIC support
        mfd: cros_ec: Free IRQ on exit
        dt-bindings: vendor-prefixes: Add arctic to vendor prefix
        mfd: da9061: Fix to remove BBAT_CONT register from chip model
        mfd: da9061: Fix to remove BBAT_CONT register from chip model
        mfd: axp20x-i2c: Document that this must be builtin on x86
        mfd: Add Cherry Trail Whiskey Cove PMIC driver
        mfd: tc6393xb: Handle return value of clk_prepare_enable
        mfd: intel_quark_i2c_gpio: Add support for SIMATIC IOT2000 platform
        mfd: intel_quark_i2c_gpio: Use dmi_system_id table for retrieving frequency
        mfd: motorola-cpcap: Use devm_of_platform_populate()
        mfd: smsc-ece: Use devm_of_platform_populate()
        mfd: qcom-spmi-pmic: Use devm_of_platform_populate()
        mfd: palmas: Use devm_of_platform_populate()
        mfd: exynos: Use devm_of_platform_populate()
        mfd: fsl-imx25: Use devm_of_platform_populate()
        mfd: cros_ec: Use devm_of_platform_populate()
        mfd: atmel: Use devm_of_platform_populate()
        mfd: stm32-timers: Use devm_of_platform_populate()
        mfd: intel_soc_pmic: Select designware i2c-bus driver
        ...
      6972b007
    • Linus Torvalds's avatar
      Merge tag 'gpio-v4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · c7d28eca
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v4.13 series.
      
        Some administrativa:
      
        I have a slew of 8250 serial patches and the new IOT2040 serial+GPIO
        driver coming in through this tree, along with a whole bunch of Exar
        8250 fixes. These are ACKed by Greg and also hit drivers/platform/*
        where they are ACKed by Andy Shevchenko.
      
        Speaking about drivers/platform/* there is also a bunch of ACPI stuff
        coming through that route, again ACKed by Andy.
      
        The MCP23S08 changes are coming in here as well. You already have the
        commits in your tree, so this is just a result of sharing an immutable
        branch between pin control and GPIO.
      
        Core:
         - Export add/remove for lookup tables so that modules can export GPIO
           descriptor tables.
         - Handle GPIO sleep states: it is now possible to flag that a GPIO
           line may loose its state during suspend/resume of the system to
           save power. This is used in the Wolfson Micro Arizona driver.
         - ACPI-based GPIO was tightened up a lot around the edges.
         - Use bitmap_fill() to speed up a loop.
      
        New drivers:
         - Exar XRA1403 SPI-based GPIO.
         - MVEBU driver now supports Armada 7K and 8K.
         - LP87565 PMIC GPIO.
         - Renesas R-CAR R8A7743 (RZ/G1M).
         - The new IOT2040 8250 serial/GPIO also comes in through this
           changeset.
      
        Substantial driver changes:
         - Seriously fix the Exar 8250 GPIO portions to work.
         - The MCP23S08 was moved out to a pin control driver.
         - Convert MEVEBU to use regmap for register access.
         - Drop Vulcan support from the Broadcom driver.
         - Serious cleanup and improvement of the mockup driver, giving us a
           better test coverage.
      
        Misc:
         - Lots of janitorial clean up.
         - A bunch of documentation fixes"
      
      * tag 'gpio-v4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (70 commits)
        serial: exar: Add support for IOT2040 device
        gpio-exar/8250-exar: Make set of exported GPIOs configurable
        platform: Accept const properties
        serial: exar: Factor out platform hooks
        gpio-exar/8250-exar: Rearrange gpiochip parenthood
        gpio: exar: Fix iomap request
        gpio-exar/8250-exar: Do not even instantiate a GPIO device for Commtech cards
        serial: uapi: Add support for bus termination
        gpio: rcar: Add R8A7743 (RZ/G1M) support
        gpio: gpio-wcove: Fix GPIO control register offset calculation
        gpio: lp87565: Add support for GPIO
        gpio: dwapb: fix missing first irq for edgeboth irq type
        MAINTAINERS: Take maintainership for GPIO ACPI support
        gpio: exar: Fix reading of directions and values
        gpio: exar: Allocate resources on behalf of the platform device
        gpio-exar/8250-exar: Fix passing in of parent PCI device
        gpio: mockup: use devm_kcalloc() where applicable
        gpio: mockup: add myself as author
        gpio: mockup: improve the error message
        gpio: mockup: don't return magic numbers from probe()
        ...
      c7d28eca
    • Krzysztof Kozlowski's avatar
      openrisc: defconfig: Cleanup from old Kconfig options · 2e08a0ef
      Krzysztof Kozlowski authored
      Remove old, dead Kconfig option INET_LRO. It is gone since
      commit 7bbf3cae ("ipv4: Remove inet_lro library").
      Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
      Signed-off-by: default avatarStafford Horne <shorne@gmail.com>
      2e08a0ef
    • Tobias Klauser's avatar
      openrisc: explicitly include linux/bug.h in asm/fixmap.h · e687448c
      Tobias Klauser authored
      openrisc's asm/fixmap.h uses the BUG() and BUG_ON() macros but relies on
      implict inclusion of linux/bug.h which means that changes in other
      headers could break the build. Thus, add an explicit include.
      Signed-off-by: default avatarTobias Klauser <tklauser@distanz.ch>
      Signed-off-by: default avatarStafford Horne <shorne@gmail.com>
      e687448c
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · dddd564d
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "This time we've got one core change to introduce a bulk clk_get API,
        some new clk drivers and updates for old ones. The diff is pretty
        spread out across a handful of different SoC clk drivers for Broadcom,
        TI, Qualcomm, Renesas, Rockchip, Samsung, and Allwinner, mostly due to
        the introduction of new drivers.
      
        Core:
         - New clk bulk get APIs
         - Clk divider APIs gained the ability to consider a different parent
           than the current one
      
        New Drivers:
         - Renesas r8a779{0,1,2,4} CPG/MSSR
         - TI Keystone SCI firmware controlled clks and OMAP4 clkctrl
         - Qualcomm IPQ8074 SoCs
         - Cortina Systems Gemini (SL3516/CS3516)
         - Rockchip rk3128 SoCs
         - Allwinner A83T clk control units
         - Broadcom Stingray SoCs
         - CPU clks for Mediatek MT8173/MT2701/MT7623 SoCs
      
        Removed Drivers:
         - Old non-DT version of the Realview clk driver
      
        Updates:
         - Renesas Kconfig/Makefile cleanups
         - Amlogic CEC EE clk support
         - Improved Armada 7K/8K cp110 clk support
         - Rockchip clk id exposing, critical clk markings
         - Samsung converted to clk_hw registration APIs
         - Fixes for Samsung exynos5420 audio clks
         - USB2 clks for Hisilicon hi3798cv200 SoC and video/camera clks for
           hi3660"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (147 commits)
        clk: gemini: Read status before using the value
        clk: scpi: error when clock fails to register
        clk: at91: Add sama5d2 suspend/resume
        gpio: dt-bindings: Add documentation for gpio controllers on Armada 7K/8K
        clk: keystone: TI_SCI_PROTOCOL is needed for clk driver
        clk: samsung: audss: Fix silent hang on Exynos4412 due to disabled EPLL
        clk: uniphier: provide NAND controller clock rate
        clk: hisilicon: add usb2 clocks for hi3798cv200 SoC
        clk: Add Gemini SoC clock controller
        clk: iproc: Remove __init marking on iproc_pll_clk_setup()
        clk: bcm: Add clocks for Stingray SOC
        dt-bindings: clk: Extend binding doc for Stingray SOC
        clk: mediatek: export cpu multiplexer clock for MT8173 SoCs
        clk: mediatek: export cpu multiplexer clock for MT2701/MT7623 SoCs
        clk: mediatek: add missing cpu mux causing Mediatek cpufreq can't work
        clk: renesas: cpg-mssr: Use of_device_get_match_data() helper
        clk: hi6220: add acpu clock
        clk: zx296718: export I2S mux clocks
        clk: imx7d: create clocks behind rawnand clock gate
        clk: hi3660: Set PPLL2 to 2880M
        ...
      dddd564d
    • Andreas Gruenbacher's avatar
      gfs2: Fix glock rhashtable rcu bug · 961ae1d8
      Andreas Gruenbacher authored
      Before commit 88ffbf3e "GFS2: Use resizable hash table for glocks",
      glocks were freed via call_rcu to allow reading the glock hashtable
      locklessly using rcu.  This was then changed to free glocks immediately,
      which made reading the glock hashtable unsafe.  Bring back the original
      code for freeing glocks via call_rcu.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      Cc: stable@vger.kernel.org # 4.3+
      961ae1d8
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · dd6ec12f
      Linus Torvalds authored
      Pull DeviceTree updates from Rob Herring:
      
       - vsprintf format specifier %pOF for device_node's. This will enable us
         to stop storing the full node names. Conversion of users will happen
         next cycle.
      
       - Update documentation to point to DT specification instead of ePAPR.
      
       - Split out graph and property functions to a separate file.
      
       - New of-graph functions for ALSA
      
       - Add vendor prefixes for RISC-V, Linksys, iWave Systems, Roofull,
         Itead, and BananaPi.
      
       - Improve dtx_diff utility filename printing.
      
      * tag 'devicetree-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (32 commits)
        of: document /sys/firmware/fdt
        dt-bindings: Add RISC-V vendor prefix
        vsprintf: Add %p extension "%pOF" for device tree
        of: find_node_by_full_name rewrite to compare each level
        of: use kbasename instead of open coding
        dt-bindings: thermal: add file extension to brcm,ns-thermal
        of: update ePAPR references to point to Devicetree Specification
        scripts/dtc: dtx_diff - Show real file names in diff header
        of: detect invalid phandle in overlay
        of: be consistent in form of file mode
        of: make __of_attach_node() static
        of: address.c header comment typo
        of: fdt.c header comment typo
        of: make of_fdt_is_compatible() static
        dt-bindings: display-timing.txt convert non-ascii characters to ascii
        Documentation: remove overlay-notes reference to non-existent file
        dt-bindings: usb: exynos-usb: Add missing required VDD properties
        dt-bindings: Add vendor prefix for Linksys
        MAINTAINERS: add device tree ABI documentation file
        of: Add vendor prefix for iWave Systems Technologies Pvt. Ltd
        ...
      dd6ec12f
    • Linus Torvalds's avatar
      Merge branch 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 21c19bc7
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
      
       - Minor improvement : avoid requiring unnecessary startup/shutdown
         callback that many drivers seem to not need
      
       - New controller driver for Qualcomm's APCS IPC
      
      * 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        mailbox: Introduce Qualcomm APCS IPC driver
        dt-bindings: mailbox: Introduce Qualcomm APCS global binding
        mailbox: Make startup and shutdown ops optional
      21c19bc7
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · b6ffe9ba
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
       "libnvdimm updates for the latest ACPI and UEFI specifications. This
        pull request also includes new 'struct dax_operations' enabling to
        undo the abuse of copy_user_nocache() for copy operations to pmem.
      
        The dax work originally missed 4.12 to address concerns raised by Al.
      
        Summary:
      
         - Introduce the _flushcache() family of memory copy helpers and use
           them for persistent memory write operations on x86. The
           _flushcache() semantic indicates that the cache is either bypassed
           for the copy operation (movnt) or any lines dirtied by the copy
           operation are written back (clwb, clflushopt, or clflush).
      
         - Extend dax_operations with ->copy_from_iter() and ->flush()
           operations. These operations and other infrastructure updates allow
           all persistent memory specific dax functionality to be pushed into
           libnvdimm and the pmem driver directly. It also allows dax-specific
           sysfs attributes to be linked to a host device, for example:
           /sys/block/pmem0/dax/write_cache
      
         - Add support for the new NVDIMM platform/firmware mechanisms
           introduced in ACPI 6.2 and UEFI 2.7. This support includes the v1.2
           namespace label format, extensions to the address-range-scrub
           command set, new error injection commands, and a new BTT
           (block-translation-table) layout. These updates support inter-OS
           and pre-OS compatibility.
      
         - Fix a longstanding memory corruption bug in nfit_test.
      
         - Make the pmem and nvdimm-region 'badblocks' sysfs files poll(2)
           capable.
      
         - Miscellaneous fixes and small updates across libnvdimm and the nfit
           driver.
      
        Acknowledgements that came after the branch was pushed: commit
        6aa734a2 ("libnvdimm, region, pmem: fix 'badblocks'
        sysfs_get_dirent() reference lifetime") was reviewed by Toshi Kani
        <toshi.kani@hpe.com>"
      
      * tag 'libnvdimm-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (42 commits)
        libnvdimm, namespace: record 'lbasize' for pmem namespaces
        acpi/nfit: Issue Start ARS to retrieve existing records
        libnvdimm: New ACPI 6.2 DSM functions
        acpi, nfit: Show bus_dsm_mask in sysfs
        libnvdimm, acpi, nfit: Add bus level dsm mask for pass thru.
        acpi, nfit: Enable DSM pass thru for root functions.
        libnvdimm: passthru functions clear to send
        libnvdimm, btt: convert some info messages to warn/err
        libnvdimm, region, pmem: fix 'badblocks' sysfs_get_dirent() reference lifetime
        libnvdimm: fix the clear-error check in nsio_rw_bytes
        libnvdimm, btt: fix btt_rw_page not returning errors
        acpi, nfit: quiet invalid block-aperture-region warnings
        libnvdimm, btt: BTT updates for UEFI 2.7 format
        acpi, nfit: constify *_attribute_group
        libnvdimm, pmem: disable dax flushing when pmem is fronting a volatile region
        libnvdimm, pmem, dax: export a cache control attribute
        dax: convert to bitmask for flags
        dax: remove default copy_from_iter fallback
        libnvdimm, nfit: enable support for volatile ranges
        libnvdimm, pmem: fix persistence warning
        ...
      b6ffe9ba
    • Al Viro's avatar
      iov_iter: saner checks on copyin/copyout · 09fc68dc
      Al Viro authored
      * might_fault() is better checked in caller (and e.g. fault-in + kmap_atomic
      codepath also needs might_fault() coverage)
      * we have already done object size checks
      * we have *NOT* done access_ok() recently enough; we rely upon the
      iovec array having passed sanity checks back when it had been created
      and not nothing having buggered it since.  However, that's very much
      non-local, so we'd better recheck that.
      
      So the thing we want does not match anything in uaccess - we need
      access_ok + kasan checks + raw copy without any zeroing.  Just define
      such helpers and use them here.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      09fc68dc
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 9f45efb9
      Linus Torvalds authored
      Merge misc updates from Andrew Morton:
      
       - a few hotfixes
      
       - various misc updates
      
       - ocfs2 updates
      
       - most of MM
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (108 commits)
        mm, memory_hotplug: move movable_node to the hotplug proper
        mm, memory_hotplug: drop CONFIG_MOVABLE_NODE
        mm, memory_hotplug: drop artificial restriction on online/offline
        mm: memcontrol: account slab stats per lruvec
        mm: memcontrol: per-lruvec stats infrastructure
        mm: memcontrol: use generic mod_memcg_page_state for kmem pages
        mm: memcontrol: use the node-native slab memory counters
        mm: vmstat: move slab statistics from zone to node counters
        mm/zswap.c: delete an error message for a failed memory allocation in zswap_dstmem_prepare()
        mm/zswap.c: improve a size determination in zswap_frontswap_init()
        mm/zswap.c: delete an error message for a failed memory allocation in zswap_pool_create()
        mm/swapfile.c: sort swap entries before free
        mm/oom_kill: count global and memory cgroup oom kills
        mm: per-cgroup memory reclaim stats
        mm: kmemleak: treat vm_struct as alternative reference to vmalloc'ed objects
        mm: kmemleak: factor object reference updating out of scan_block()
        mm: kmemleak: slightly reduce the size of some structures on 64-bit architectures
        mm, mempolicy: don't check cpuset seqlock where it doesn't matter
        mm, cpuset: always use seqlock when changing task's nodemask
        mm, mempolicy: simplify rebinding mempolicies when updating cpusets
        ...
      9f45efb9
    • Linus Torvalds's avatar
      Merge branch 'uaccess.strlen' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · dc502142
      Linus Torvalds authored
      Pull user access str* updates from Al Viro:
       "uaccess str...() dead code removal"
      
      * 'uaccess.strlen' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        s390 keyboard.c: don't open-code strndup_user()
        mips: get rid of unused __strnlen_user()
        get rid of unused __strncpy_from_user() instances
        kill strlen_user()
      dc502142
    • Linus Torvalds's avatar
      Merge branch 'work.probe_kernel_read' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 90880b53
      Linus Torvalds authored
      Pull probe_kernel_read() uses from Al Viro:
       "Several open-coded probe_kernel_read()..."
      
      * 'work.probe_kernel_read' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        dio: use probe_kernel_read()
        hp_sdc: use probe_kernel_read()
        hpfb: use probe_kernel_read()
      90880b53
    • Linus Torvalds's avatar
      Merge branch 'misc.alpha' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 1c91d2c6
      Linus Torvalds authored
      Pull alpha user access updates from Al Viro:
       "Several alpha osf_sys.c uaccess cleanups - getdomainname() had insane
        byte-by-byte copying of string to userland (instead of strnlen +
        copy_to_user) plus yet another compat variant of timeval/itimerval
        with associated copyin/copyout primitives"
      
      * 'misc.alpha' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        osf_sigstack(): switch to put_user()
        osf_sys.c: switch handling of timeval32/itimerval32 to copy_{to,from}_user()
        osf_getdomainname(): use copy_to_user()
      1c91d2c6
    • Linus Torvalds's avatar
      Merge branch 'misc.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · c8568639
      Linus Torvalds authored
      Pull misc compat stuff updates from Al Viro:
       "This part is basically untangling various compat stuff. Compat
        syscalls moved to their native counterparts, getting rid of quite a
        bit of double-copying and/or set_fs() uses. A lot of field-by-field
        copyin/copyout killed off.
      
         - kernel/compat.c is much closer to containing just the
           copyin/copyout of compat structs. Not all compat syscalls are gone
           from it yet, but it's getting there.
      
         - ipc/compat_mq.c killed off completely.
      
         - block/compat_ioctl.c cleaned up; floppy compat ioctls moved to
           drivers/block/floppy.c where they belong. Yes, there are several
           drivers that implement some of the same ioctls. Some are m68k and
           one is 32bit-only pmac. drivers/block/floppy.c is the only one in
           that bunch that can be built on biarch"
      
      * 'misc.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        mqueue: move compat syscalls to native ones
        usbdevfs: get rid of field-by-field copyin
        compat_hdio_ioctl: get rid of set_fs()
        take floppy compat ioctls to sodding floppy.c
        ipmi: get rid of field-by-field __get_user()
        ipmi: get COMPAT_IPMICTL_RECEIVE_MSG in sync with the native one
        rt_sigtimedwait(): move compat to native
        select: switch compat_{get,put}_fd_set() to compat_{get,put}_bitmap()
        put_compat_rusage(): switch to copy_to_user()
        sigpending(): move compat to native
        getrlimit()/setrlimit(): move compat to native
        times(2): move compat to native
        compat_{get,put}_bitmap(): use unsafe_{get,put}_user()
        fb_get_fscreeninfo(): don't bother with do_fb_ioctl()
        do_sigaltstack(): lift copying to/from userland into callers
        take compat_sys_old_getrlimit() to native syscall
        trim __ARCH_WANT_SYS_OLD_GETRLIMIT
      c8568639
    • Linus Torvalds's avatar
      Merge branch 'work.drm' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 771d3feb
      Linus Torvalds authored
      Pull DRM compat ioctl handling updates from Al Viro:
       "This kills the double-copies in there and tons of field-by-field
        copyin/copyout.
      
        Several dead ioctls put to rest, while we are at it - the native
        counterparts had been gone for a decade, so we can bloody well fail
        early on the compat side. No point rearranging the 32bit structure
        into 64bit one (and back) only to be told "piss off, I don't know that
        ioctl" by the native code..."
      
      * 'work.drm' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (29 commits)
        Fix trivial misannotations
        mga: switch compat ioctls to drm_ioctl_kernel()
        radeon: take out dead compat ioctls
        drm compat: ia64 is not biarch
        drm_compat_ioctl(): tidy up a bit
        switch compat_drm_mapbufs() to drm_ioctl_kernel()
        switch compat_drm_rmmap() to drm_ioctl_kernel()
        switch compat_drm_mode_addfb2() to drm_ioctl_kernel()
        switch compat_drm_wait_vblank() to drm_ioctl_kernel()
        switch compat_drm_update_draw()
        compat_drm: switch sg ioctls
        compat_drm: switch AGP compat ioctls to drm_ioctl_kernel()
        switch compat_drm_dma() to drm_ioctl_kernel()
        switch compat_drm_resctx() to drm_ioctl_kernel()
        switch compat_drm_getsareactx() to drm_ioctl_kernel()
        switch compat_drm_setsareactx() to drm_ioctl_kernel()
        switch compat_drm_freebufs() to drm_ioctl_kernel()
        switch compat_drm_markbufs() to drm_ioctl_kernel()
        switch compat_drm_addmap() to drm_ioctl_kernel()
        switch compat_drm_getstats() to drm_ioctl_kernel()
        ...
      771d3feb
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 2074006d
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "The new features of this release:
      
         - Added TRACE_DEFINE_SIZEOF() which allows trace events that use
           sizeof() it the TP_printk() to be converted to the actual size such
           that trace-cmd and perf can parse them correctly.
      
         - Some rework of the TRACE_DEFINE_ENUM() such that the above
           TRACE_DEFINE_SIZEOF() could reuse the same code.
      
         - Recording of tgid (Thread Group ID). This is similar to how task
           COMMs are recorded (cached at sched_switch), where it is in a table
           and used on output of the trace and trace_pipe files.
      
         - Have ":mod:<module>" be cached when written into set_ftrace_filter.
           Then the functions of the module will be traced at module load.
      
         - Some random clean ups and small fixes"
      
      * tag 'trace-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (26 commits)
        ftrace: Test for NULL iter->tr in regex for stack_trace_filter changes
        ftrace: Decrement count for dyn_ftrace_total_info for init functions
        ftrace: Unlock hash mutex on failed allocation in process_mod_list()
        tracing: Add support for display of tgid in trace output
        tracing: Add support for recording tgid of tasks
        ftrace: Decrement count for dyn_ftrace_total_info file
        ftrace: Remove unused function ftrace_arch_read_dyn_info()
        sh/ftrace: Remove only user of ftrace_arch_read_dyn_info()
        ftrace: Have cached module filters be an active filter
        ftrace: Implement cached modules tracing on module load
        ftrace: Have the cached module list show in set_ftrace_filter
        ftrace: Add :mod: caching infrastructure to trace_array
        tracing: Show address when function names are not found
        ftrace: Add missing comment for FTRACE_OPS_FL_RCU
        tracing: Rename update the enum_map file
        tracing: Add TRACE_DEFINE_SIZEOF() macros
        tracing: define TRACE_DEFINE_SIZEOF() macro to map sizeof's to their values
        tracing: Rename enum_replace to eval_replace
        trace: rename enum_map functions
        trace: rename trace.c enum functions
        ...
      2074006d
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-4.13' of git://git.infradead.org/users/hch/dma-mapping · f72e24a1
      Linus Torvalds authored
      Pull dma-mapping infrastructure from Christoph Hellwig:
       "This is the first pull request for the new dma-mapping subsystem
      
        In this new subsystem we'll try to properly maintain all the generic
        code related to dma-mapping, and will further consolidate arch code
        into common helpers.
      
        This pull request contains:
      
         - removal of the DMA_ERROR_CODE macro, replacing it with calls to
           ->mapping_error so that the dma_map_ops instances are more self
           contained and can be shared across architectures (me)
      
         - removal of the ->set_dma_mask method, which duplicates the
           ->dma_capable one in terms of functionality, but requires more
           duplicate code.
      
         - various updates for the coherent dma pool and related arm code
           (Vladimir)
      
         - various smaller cleanups (me)"
      
      * tag 'dma-mapping-4.13' of git://git.infradead.org/users/hch/dma-mapping: (56 commits)
        ARM: dma-mapping: Remove traces of NOMMU code
        ARM: NOMMU: Set ARM_DMA_MEM_BUFFERABLE for M-class cpus
        ARM: NOMMU: Introduce dma operations for noMMU
        drivers: dma-mapping: allow dma_common_mmap() for NOMMU
        drivers: dma-coherent: Introduce default DMA pool
        drivers: dma-coherent: Account dma_pfn_offset when used with device tree
        dma: Take into account dma_pfn_offset
        dma-mapping: replace dmam_alloc_noncoherent with dmam_alloc_attrs
        dma-mapping: remove dmam_free_noncoherent
        crypto: qat - avoid an uninitialized variable warning
        au1100fb: remove a bogus dma_free_nonconsistent call
        MAINTAINERS: add entry for dma mapping helpers
        powerpc: merge __dma_set_mask into dma_set_mask
        dma-mapping: remove the set_dma_mask method
        powerpc/cell: use the dma_supported method for ops switching
        powerpc/cell: clean up fixed mapping dma_ops initialization
        tile: remove dma_supported and mapping_error methods
        xen-swiotlb: remove xen_swiotlb_set_dma_mask
        arm: implement ->dma_supported instead of ->set_dma_mask
        mips/loongson64: implement ->dma_supported instead of ->set_dma_mask
        ...
      f72e24a1
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 2c669275
      Linus Torvalds authored
      Pull more s390 updates from Martin Schwidefsky:
      
       - The fixup for the blk-mq clash with the scm driver
      
       - An improvement for the dasd driver in regard to raw I/O
      
       - Bug fixes and cleanup
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        Update my email address
        s390/syscalls: Fix out of bounds arguments access
        s390/vfio_ccw: remove unused variable
        s390/dasd: remove unneeded code
        s390/crash: Remove unused KEXEC_NOTE_BYTES
        s390/zcrypt: Fix missing newlines at some debug feature messages.
        s390/dasd: Make raw I/O usable without prefix support
        s390/dasd: Rename dasd_raw_build_cp()
        s390/dasd: Refactor prefix_LRE() and related functions
        s390: fix up for "blk-mq: switch ->queue_rq return value to blk_status_t"
      2c669275
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.13-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 6e6c5b96
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
       "Other than fixes and cleanups it contains:
      
         - support > 32 VCPUs at domain restore
      
         - support for new sysfs nodes related to Xen
      
         - some performance tuning for Linux running as Xen guest"
      
      * tag 'for-linus-4.13-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        x86/xen: allow userspace access during hypercalls
        x86: xen: remove unnecessary variable in xen_foreach_remap_area()
        xen: allocate page for shared info page from low memory
        xen: avoid deadlock in xenbus driver
        xen: add sysfs node for hypervisor build id
        xen: sync include/xen/interface/version.h
        xen: add sysfs node for guest type
        doc,xen: document hypervisor sysfs nodes for xen
        xen/vcpu: Handle xen_vcpu_setup() failure at boot
        xen/vcpu: Handle xen_vcpu_setup() failure in hotplug
        xen/pv: Fix OOPS on restore for a PV, !SMP domain
        xen/pvh*: Support > 32 VCPUs at domain restore
        xen/vcpu: Simplify xen_vcpu related code
        xen-evtchn: Bind dyn evtchn:qemu-dm interrupt to next online VCPU
        xen: avoid type warning in xchg_xen_ulong
        xen: fix HYPERVISOR_dm_op() prototype
        xen: don't print error message in case of missing Xenstore entry
        arm/xen: Adjust one function call together with a variable assignment
        arm/xen: Delete an error message for a failed memory allocation in __set_phys_to_machine_multi()
        arm/xen: Improve a size determination in __set_phys_to_machine_multi()
      6e6c5b96