1. 31 Jan, 2018 7 commits
    • Eric Biggers's avatar
      devpts: fix error handling in devpts_mntget() · c9cc8d01
      Eric Biggers authored
      If devpts_ptmx_path() returns an error code, then devpts_mntget()
      dereferences an ERR_PTR():
      
          BUG: unable to handle kernel paging request at fffffffffffffff5
          IP: devpts_mntget+0x13f/0x280 fs/devpts/inode.c:173
      
      Fix it by returning early in the error paths.
      
      Reproducer:
      
          #define _GNU_SOURCE
          #include <fcntl.h>
          #include <sched.h>
          #include <sys/ioctl.h>
          #define TIOCGPTPEER _IO('T', 0x41)
      
          int main()
          {
              for (;;) {
                  int fd = open("/dev/ptmx", 0);
                  unshare(CLONE_NEWNS);
                  ioctl(fd, TIOCGPTPEER, 0);
              }
          }
      
      Fixes: 311fc65c ("pty: Repair TIOCGPTPEER")
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Cc: <stable@vger.kernel.org> # v4.13+
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c9cc8d01
    • Jeff Layton's avatar
      iversion: make inode_cmp_iversion{+raw} return bool instead of s64 · c0cef30e
      Jeff Layton authored
      As Linus points out:
      
          The inode_cmp_iversion{+raw}() functions are pure and utter crap.
      
          Why?
      
          You say that they return 0/negative/positive, but they do so in a
          completely broken manner. They return that ternary value as the
          sequence number difference in a 's64', which means that if you
          actually care about that ternary value, and do the *sane* thing that
          the kernel-doc of the function implies is the right thing, you would
          do
      
              int cmp = inode_cmp_iversion(inode, old);
              if (cmp < 0 ...
      
          and as a result you get code that looks sane, but that doesn't
          actually *WORK* right.
      
      Since none of the callers actually care about the ternary value here,
      convert the inode_cmp_iversion{+raw} functions to just return a boolean
      value (false for matching, true for non-matching).
      
      This matches the existing use of these functions just fine, and makes it
      simple to convert them to return a ternary value in the future if we
      grow callers that need it.
      
      With this change we can also reimplement inode_cmp_iversion in a simpler
      way using inode_peek_iversion.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c0cef30e
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 3da90b15
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "In this round, we've followed up to support some generic features such
        as cgroup, block reservation, linking fscrypt_ops, delivering
        write_hints, and some ioctls. And, we could fix some corner cases in
        terms of power-cut recovery and subtle deadlocks.
      
        Enhancements:
         - bitmap operations to handle NAT blocks
         - readahead to improve readdir speed
         - switch to use fscrypt_*
         - apply write hints for direct IO
         - add reserve_root=%u,resuid=%u,resgid=%u to reserve blocks for root/uid/gid
         - modify b_avail and b_free to consider root reserved blocks
         - support cgroup writeback
         - support FIEMAP_FLAG_XATTR for fibmap
         - add F2FS_IOC_PRECACHE_EXTENTS to pre-cache extents
         - add F2FS_IOC_{GET/SET}_PIN_FILE to pin LBAs for data blocks
         - support inode creation time
      
        Bug fixs:
         - sysfile-based quota operations
         - memory footprint accounting
         - allow to write data on partial preallocation case
         - fix deadlock case on fallocate
         - fix to handle fill_super errors
         - fix missing inode updates of fsync'ed file
         - recover renamed file which was fsycn'ed before
         - drop inmemory pages in corner error case
         - keep last_disk_size correctly
         - recover missing i_inline flags during roll-forward
      
        Various clean-up patches were added as well"
      
      * tag 'f2fs-for-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (72 commits)
        f2fs: support inode creation time
        f2fs: rebuild sit page from sit info in mem
        f2fs: stop issuing discard if fs is readonly
        f2fs: clean up duplicated assignment in init_discard_policy
        f2fs: use GFP_F2FS_ZERO for cleanup
        f2fs: allow to recover node blocks given updated checkpoint
        f2fs: recover some i_inline flags
        f2fs: correct removexattr behavior for null valued extended attribute
        f2fs: drop page cache after fs shutdown
        f2fs: stop gc/discard thread after fs shutdown
        f2fs: hanlde error case in f2fs_ioc_shutdown
        f2fs: split need_inplace_update
        f2fs: fix to update last_disk_size correctly
        f2fs: kill F2FS_INLINE_XATTR_ADDRS for cleanup
        f2fs: clean up error path of fill_super
        f2fs: avoid hungtask when GC encrypted block if io_bits is set
        f2fs: allow quota to use reserved blocks
        f2fs: fix to drop all inmem pages correctly
        f2fs: speed up defragment on sparse file
        f2fs: support F2FS_IOC_PRECACHE_EXTENTS
        ...
      3da90b15
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.16-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · efd52b5d
      Linus Torvalds authored
      Pull NFS client updates from Trond Myklebust:
       "Highlights include:
      
        Stable bugfixes:
      
         - Fix breakages in the nfsstat utility due to the inclusion of the
           NFSv4 LOOKUPP operation
      
         - Fix a NULL pointer dereference in nfs_idmap_prepare_pipe_upcall()
           due to nfs_idmap_legacy_upcall() being called without an 'aux'
           parameter
      
         - Fix a refcount leak in the standard O_DIRECT error path
      
         - Fix a refcount leak in the pNFS O_DIRECT fallback to MDS path
      
         - Fix CPU latency issues with nfs_commit_release_pages()
      
         - Fix the LAYOUTUNAVAILABLE error case in the file layout type
      
         - NFS: Fix a race between mmap() and O_DIRECT
      
        Features:
      
         - Support the statx() mask and query flags to enable optimisations
           when the user is requesting only attributes that are already up to
           date in the inode cache, or is specifying the AT_STATX_DONT_SYNC
           flag
      
         - Add a module alias for the SCSI pNFS layout type
      
        Bugfixes:
      
         - Automounting when resolving a NFSv4 referral should preserve the
           RDMA transport protocol settings
      
         - Various other RDMA bugfixes from Chuck
      
         - pNFS block layout fixes
      
         - Always set NFS_LOCK_LOST when a lock is lost"
      
      * tag 'nfs-for-4.16-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (69 commits)
        NFS: Fix a race between mmap() and O_DIRECT
        NFS: Remove a redundant call to unmap_mapping_range()
        pnfs/blocklayout: Ensure disk address in block device map
        pnfs/blocklayout: pnfs_block_dev_map uses bytes, not sectors
        lockd: Fix server refcounting
        SUNRPC: Fix null rpc_clnt dereference in rpc_task_queued tracepoint
        SUNRPC: Micro-optimize __rpc_execute
        SUNRPC: task_run_action should display tk_callback
        sunrpc: Format RPC events consistently for display
        SUNRPC: Trace xprt_timer events
        xprtrdma: Correct some documenting comments
        xprtrdma: Fix "bytes registered" accounting
        xprtrdma: Instrument allocation/release of rpcrdma_req/rep objects
        xprtrdma: Add trace points to instrument QP and CQ access upcalls
        xprtrdma: Add trace points in the client-side backchannel code paths
        xprtrdma: Add trace points for connect events
        xprtrdma: Add trace points to instrument MR allocation and recovery
        xprtrdma: Add trace points to instrument memory invalidation
        xprtrdma: Add trace points in reply decoder path
        xprtrdma: Add trace points to instrument memory registration
        ..
      efd52b5d
    • Linus Torvalds's avatar
      Merge branch 'work.sock_recvmsg' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 1ed2d76e
      Linus Torvalds authored
      Pull kern_recvmsg reduction from Al Viro:
       "kernel_recvmsg() is a set_fs()-using wrapper for sock_recvmsg(). In
        all but one case that is not needed - use of ITER_KVEC for ->msg_iter
        takes care of the data and does not care about set_fs(). The only
        exception is svc_udp_recvfrom() where we want cmsg to be store into
        kernel object; everything else can just use sock_recvmsg() and be done
        with that.
      
        A followup converting svc_udp_recvfrom() away from set_fs() (and
        killing kernel_recvmsg() off) is *NOT* in here - I'd like to hear what
        netdev folks think of the approach proposed in that followup)"
      
      * 'work.sock_recvmsg' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        tipc: switch to sock_recvmsg()
        smc: switch to sock_recvmsg()
        ipvs: switch to sock_recvmsg()
        mISDN: switch to sock_recvmsg()
        drbd: switch to sock_recvmsg()
        lustre lnet_sock_read(): switch to sock_recvmsg()
        cfs2: switch to sock_recvmsg()
        ncpfs: switch to sock_recvmsg()
        dlm: switch to sock_recvmsg()
        svc_recvfrom(): switch to sock_recvmsg()
      1ed2d76e
    • Linus Torvalds's avatar
      Merge branch 'work.mqueue' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 8b0fdf63
      Linus Torvalds authored
      Pull mqueue/bpf vfs cleanups from Al Viro:
       "mqueue and bpf go through rather painful and similar contortions to
        create objects in their dentry trees. Provide a primitive for doing
        that without abusing ->mknod(), switch bpf and mqueue to it.
      
        Another mqueue-related thing that has ended up in that branch is
        on-demand creation of internal mount (based upon the work of Giuseppe
        Scrivano)"
      
      * 'work.mqueue' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        mqueue: switch to on-demand creation of internal mount
        tidy do_mq_open() up a bit
        mqueue: clean prepare_open() up
        do_mq_open(): move all work prior to dentry_open() into a helper
        mqueue: fold mq_attr_ok() into mqueue_get_inode()
        move dentry_open() calls up into do_mq_open()
        mqueue: switch to vfs_mkobj(), quit abusing ->d_fsdata
        bpf_obj_do_pin(): switch to vfs_mkobj(), quit abusing ->mknod()
        new primitive: vfs_mkobj()
      8b0fdf63
    • Linus Torvalds's avatar
      Merge branch 'misc.poll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 168fe32a
      Linus Torvalds authored
      Pull poll annotations from Al Viro:
       "This introduces a __bitwise type for POLL### bitmap, and propagates
        the annotations through the tree. Most of that stuff is as simple as
        'make ->poll() instances return __poll_t and do the same to local
        variables used to hold the future return value'.
      
        Some of the obvious brainos found in process are fixed (e.g. POLLIN
        misspelled as POLL_IN). At that point the amount of sparse warnings is
        low and most of them are for genuine bugs - e.g. ->poll() instance
        deciding to return -EINVAL instead of a bitmap. I hadn't touched those
        in this series - it's large enough as it is.
      
        Another problem it has caught was eventpoll() ABI mess; select.c and
        eventpoll.c assumed that corresponding POLL### and EPOLL### were
        equal. That's true for some, but not all of them - EPOLL### are
        arch-independent, but POLL### are not.
      
        The last commit in this series separates userland POLL### values from
        the (now arch-independent) kernel-side ones, converting between them
        in the few places where they are copied to/from userland. AFAICS, this
        is the least disruptive fix preserving poll(2) ABI and making epoll()
        work on all architectures.
      
        As it is, it's simply broken on sparc - try to give it EPOLLWRNORM and
        it will trigger only on what would've triggered EPOLLWRBAND on other
        architectures. EPOLLWRBAND and EPOLLRDHUP, OTOH, are never triggered
        at all on sparc. With this patch they should work consistently on all
        architectures"
      
      * 'misc.poll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (37 commits)
        make kernel-side POLL... arch-independent
        eventpoll: no need to mask the result of epi_item_poll() again
        eventpoll: constify struct epoll_event pointers
        debugging printk in sg_poll() uses %x to print POLL... bitmap
        annotate poll(2) guts
        9p: untangle ->poll() mess
        ->si_band gets POLL... bitmap stored into a user-visible long field
        ring_buffer_poll_wait() return value used as return value of ->poll()
        the rest of drivers/*: annotate ->poll() instances
        media: annotate ->poll() instances
        fs: annotate ->poll() instances
        ipc, kernel, mm: annotate ->poll() instances
        net: annotate ->poll() instances
        apparmor: annotate ->poll() instances
        tomoyo: annotate ->poll() instances
        sound: annotate ->poll() instances
        acpi: annotate ->poll() instances
        crypto: annotate ->poll() instances
        block: annotate ->poll() instances
        x86: annotate ->poll() instances
        ...
      168fe32a
  2. 30 Jan, 2018 27 commits
    • Linus Torvalds's avatar
      Merge branch 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 13ddd166
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "Nothing too interesting. Documentation updates and trivial changes;
        however, this pull request does containt he previusly discussed
        dropping of __must_check from strscpy()"
      
      * 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        Documentation: Fix 'file_mapped' -> 'mapped_file'
        string: drop __must_check from strscpy() and restore strscpy() usages in cgroup
        cgroup, docs: document the root cgroup behavior of cpu and io controllers
        cgroup-v2.txt: fix typos
        cgroup: Update documentation reference
        Documentation/cgroup-v1: fix outdated programming details
        cgroup, docs: document cgroup v2 device controller
      13ddd166
    • Linus Torvalds's avatar
      Merge branch 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · 289104c9
      Linus Torvalds authored
      Pull percpu update from Tejun Heo:
       "One trivial patch to convert the return type from int to bool"
      
      * 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: percpu_counter_initialized can be boolean
      289104c9
    • Linus Torvalds's avatar
      Merge branch 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 76a250f9
      Linus Torvalds authored
      Pull libata updates from Tejun Heo:
       "Nothing too interesting. Several patches to convert mdelay() to
        usleep_range(), removal of unused pata_at32, and other low level
        driver specific changes"
      
      * 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ata: pata_pdc2027x: Replace mdelay with msleep
        ata: pata_it821x: Replace mdelay with usleep_range in it821x_firmware_command
        ata: sata_mv: Replace mdelay with usleep_range in mv_reset_channel
        ata: remove pata_at32
        phy: brcm-sata: remove unused variable
        phy: brcm-sata: fix semicolon.cocci warnings
        ata: ahci_brcm: Recover from failures to identify devices
        phy: brcm-sata: Implement calibrate callback
        ahci: Add Intel Cannon Lake PCH-H PCI ID
        ata_piix: constify pci_bits
        libata:pata_atiixp: Don't use unconnected secondary port on SB600
        ata: ahci_brcm: Avoid clobbering SATA_TOP_CTRL_BUS_CTRL
        ahci: Allow setting a default LPM policy for mobile chipsets
        ahci: Add PCI ids for Intel Bay Trail, Cherry Trail and Apollo Lake AHCI
        ahci: Annotate PCI ids for mobile Intel chipsets as such
      76a250f9
    • Linus Torvalds's avatar
      Merge branch 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · f8cc87b6
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "Workqueue has an early init trick where workqueues can be created and
        work items queued on them before the workqueue subsystem is online.
        This helps simplifying early init and operation of low level
        subsystems which use workqueues for managerial things which aren't
        depended upon early during boot.
      
        Out of laziness, the early init didn't cover workqueues with
        WQ_MEM_RECLAIM, which is inconsistent and confusing because adding the
        flag simply makes the system fail to boot. Cover WQ_MEM_RECLAIM too.
      
        This was originally brought up for RCU but RCU didn't actually need
        this. I still think it's a good idea to cover it"
      
      * 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: allow WQ_MEM_RECLAIM on early init workqueues
        workqueue: separate out init_rescuer()
      f8cc87b6
    • Linus Torvalds's avatar
      Merge branch 'userns-linus' of... · 2afe738f
      Linus Torvalds authored
      Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull userns updates from Eric Biederman:
       "Between the holidays and other distractions only a small amount of
        namespace work made it into my tree this time.
      
        Just a final cleanup from a revert several kernels ago and a small
        typo fix from Wolffhardt Schwabe"
      
      * 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        fix typo in assignment of fs default overflow gid
        autofs4: Modify autofs_wait to use current_uid() and current_gid()
        userns: Don't fail follow_automount based on s_user_ns
      2afe738f
    • Linus Torvalds's avatar
      Merge branch 'siginfo-linus' of... · d4173023
      Linus Torvalds authored
      Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull siginfo cleanups from Eric Biederman:
       "Long ago when 2.4 was just a testing release copy_siginfo_to_user was
        made to copy individual fields to userspace, possibly for efficiency
        and to ensure initialized values were not copied to userspace.
      
        Unfortunately the design was complex, it's assumptions unstated, and
        humans are fallible and so while it worked much of the time that
        design failed to ensure unitialized memory is not copied to userspace.
      
        This set of changes is part of a new design to clean up siginfo and
        simplify things, and hopefully make the siginfo handling robust enough
        that a simple inspection of the code can be made to ensure we don't
        copy any unitializied fields to userspace.
      
        The design is to unify struct siginfo and struct compat_siginfo into a
        single definition that is shared between all architectures so that
        anyone adding to the set of information shared with struct siginfo can
        see the whole picture. Hopefully ensuring all future si_code
        assignments are arch independent.
      
        The design is to unify copy_siginfo_to_user32 and
        copy_siginfo_from_user32 so that those function are complete and cope
        with all of the different cases documented in signinfo_layout. I don't
        think there was a single implementation of either of those functions
        that was complete and correct before my changes unified them.
      
        The design is to introduce a series of helpers including
        force_siginfo_fault that take the values that are needed in struct
        siginfo and build the siginfo structure for their callers. Ensuring
        struct siginfo is built correctly.
      
        The remaining work for 4.17 (unless someone thinks it is post -rc1
        material) is to push usage of those helpers down into the
        architectures so that architecture specific code will not need to deal
        with the fiddly work of intializing struct siginfo, and then when
        struct siginfo is guaranteed to be fully initialized change copy
        siginfo_to_user into a simple wrapper around copy_to_user.
      
        Further there is work in progress on the issues that have been
        documented requires arch specific knowledge to sort out.
      
        The changes below fix or at least document all of the issues that have
        been found with siginfo generation. Then proceed to unify struct
        siginfo the 32 bit helpers that copy siginfo to and from userspace,
        and generally clean up anything that is not arch specific with regards
        to siginfo generation.
      
        It is a lot but with the unification you can of siginfo you can
        already see the code reduction in the kernel"
      
      * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (45 commits)
        signal/memory-failure: Use force_sig_mceerr and send_sig_mceerr
        mm/memory_failure: Remove unused trapno from memory_failure
        signal/ptrace: Add force_sig_ptrace_errno_trap and use it where needed
        signal/powerpc: Remove unnecessary signal_code parameter of do_send_trap
        signal: Helpers for faults with specialized siginfo layouts
        signal: Add send_sig_fault and force_sig_fault
        signal: Replace memset(info,...) with clear_siginfo for clarity
        signal: Don't use structure initializers for struct siginfo
        signal/arm64: Better isolate the COMPAT_TASK portion of ptrace_hbptriggered
        ptrace: Use copy_siginfo in setsiginfo and getsiginfo
        signal: Unify and correct copy_siginfo_to_user32
        signal: Remove the code to clear siginfo before calling copy_siginfo_from_user32
        signal: Unify and correct copy_siginfo_from_user32
        signal/blackfin: Remove pointless UID16_SIGINFO_COMPAT_NEEDED
        signal/blackfin: Move the blackfin specific si_codes to asm-generic/siginfo.h
        signal/tile: Move the tile specific si_codes to asm-generic/siginfo.h
        signal/frv: Move the frv specific si_codes to asm-generic/siginfo.h
        signal/ia64: Move the ia64 specific si_codes to asm-generic/siginfo.h
        signal/powerpc: Remove redefinition of NSIGTRAP on powerpc
        signal: Move addr_lsb into the _sigfault union for clarity
        ...
      d4173023
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0aebc6a4
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
       "The main theme of this pull request is security covering variants 2
        and 3 for arm64. I expect to send additional patches next week
        covering an improved firmware interface (requires firmware changes)
        for variant 2 and way for KPTI to be disabled on unaffected CPUs
        (Cavium's ThunderX doesn't work properly with KPTI enabled because of
        a hardware erratum).
      
        Summary:
      
         - Security mitigations:
            - variant 2: invalidate the branch predictor with a call to
              secure firmware
            - variant 3: implement KPTI for arm64
      
         - 52-bit physical address support for arm64 (ARMv8.2)
      
         - arm64 support for RAS (firmware first only) and SDEI (software
           delegated exception interface; allows firmware to inject a RAS
           error into the OS)
      
         - perf support for the ARM DynamIQ Shared Unit PMU
      
         - CPUID and HWCAP bits updated for new floating point multiplication
           instructions in ARMv8.4
      
         - remove some virtual memory layout printks during boot
      
         - fix initial page table creation to cope with larger than 32M kernel
           images when 16K pages are enabled"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (104 commits)
        arm64: Fix TTBR + PAN + 52-bit PA logic in cpu_do_switch_mm
        arm64: Turn on KPTI only on CPUs that need it
        arm64: Branch predictor hardening for Cavium ThunderX2
        arm64: Run enable method for errata work arounds on late CPUs
        arm64: Move BP hardening to check_and_switch_context
        arm64: mm: ignore memory above supported physical address size
        arm64: kpti: Fix the interaction between ASID switching and software PAN
        KVM: arm64: Emulate RAS error registers and set HCR_EL2's TERR & TEA
        KVM: arm64: Handle RAS SErrors from EL2 on guest exit
        KVM: arm64: Handle RAS SErrors from EL1 on guest exit
        KVM: arm64: Save ESR_EL2 on guest SError
        KVM: arm64: Save/Restore guest DISR_EL1
        KVM: arm64: Set an impdef ESR for Virtual-SError using VSESR_EL2.
        KVM: arm/arm64: mask/unmask daif around VHE guests
        arm64: kernel: Prepare for a DISR user
        arm64: Unconditionally enable IESB on exception entry/return for firmware-first
        arm64: kernel: Survive corrected RAS errors notified by SError
        arm64: cpufeature: Detect CPU RAS Extentions
        arm64: sysreg: Move to use definitions for all the SCTLR bits
        arm64: cpufeature: __this_cpu_has_cap() shouldn't stop early
        ...
      0aebc6a4
    • Linus Torvalds's avatar
      Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 72906f38
      Linus Torvalds authored
      Pull x86 hyperv update from Ingo Molnar:
       "Enable PCID support on Hyper-V guests"
      
      * 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/hyperv: Stop suppressing X86_FEATURE_PCID
      72906f38
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3ccabd6d
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Misc cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Remove unused IOMMU_STRESS Kconfig
        x86/extable: Mark exception handler functions visible
        x86/timer: Don't inline __const_udelay
        x86/headers: Remove duplicate #includes
      3ccabd6d
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5289d300
      Linus Torvalds authored
      Pull x86 apic cleanup from Ingo Molnar:
       "A single change simplifying the APIC code bit"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Remove local var in flat_send_IPI_allbutself()
      5289d300
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · af8c5e2d
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - Implement frequency/CPU invariance and OPP selection for
           SCHED_DEADLINE (Juri Lelli)
      
         - Tweak the task migration logic for better multi-tasking
           workload scalability (Mel Gorman)
      
         - Misc cleanups, fixes and improvements"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/deadline: Make bandwidth enforcement scale-invariant
        sched/cpufreq: Move arch_scale_{freq,cpu}_capacity() outside of #ifdef CONFIG_SMP
        sched/cpufreq: Remove arch_scale_freq_capacity()'s 'sd' parameter
        sched/cpufreq: Always consider all CPUs when deciding next freq
        sched/cpufreq: Split utilization signals
        sched/cpufreq: Change the worker kthread to SCHED_DEADLINE
        sched/deadline: Move CPU frequency selection triggering points
        sched/cpufreq: Use the DEADLINE utilization signal
        sched/deadline: Implement "runtime overrun signal" support
        sched/fair: Only immediately migrate tasks due to interrupts if prev and target CPUs share cache
        sched/fair: Correct obsolete comment about cpufreq_update_util()
        sched/fair: Remove impossible condition from find_idlest_group_cpu()
        sched/cpufreq: Don't pass flags to sugov_set_iowait_boost()
        sched/cpufreq: Initialize sg_cpu->flags to 0
        sched/fair: Consider RT/IRQ pressure in capacity_spare_wake()
        sched/fair: Use 'unsigned long' for utilization, consistently
        sched/core: Rework and clarify prepare_lock_switch()
        sched/fair: Remove unused 'curr' parameter from wakeup_gran
        sched/headers: Constify object_is_on_stack()
      af8c5e2d
    • Linus Torvalds's avatar
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a1c75e17
      Linus Torvalds authored
      Pull x86 RAS updates from Ingo Molnar:
      
       - various AMD SMCA error parsing/reporting improvements (Yazen Ghannam)
      
       - extend Intel CMCI error reporting to more cases (Xie XiuQi)
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/MCE: Make correctable error detection look at the Deferred bit
        x86/MCE: Report only DRAM ECC as memory errors on AMD systems
        x86/MCE/AMD: Define a function to get SMCA bank type
        x86/mce/AMD: Don't set DEF_INT_TYPE in MSR_CU_DEF_ERR on SMCA systems
        x86/MCE: Extend table to report action optional errors through CMCI too
      a1c75e17
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d8b91dde
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "Kernel side changes:
      
         - Clean up the x86 instruction decoder (Masami Hiramatsu)
      
         - Add new uprobes optimization for PUSH instructions on x86 (Yonghong
           Song)
      
         - Add MSR_IA32_THERM_STATUS to the MSR events (Stephane Eranian)
      
         - Fix misc bugs, update documentation, plus various cleanups (Jiri
           Olsa)
      
        There's a large number of tooling side improvements:
      
         - Intel-PT/BTS improvements (Adrian Hunter)
      
         - Numerous 'perf trace' improvements (Arnaldo Carvalho de Melo)
      
         - Introduce an errno code to string facility (Hendrik Brueckner)
      
         - Various build system improvements (Jiri Olsa)
      
         - Add support for CoreSight trace decoding by making the perf tools
           use the external openCSD (Mathieu Poirier, Tor Jeremiassen)
      
         - Add ARM Statistical Profiling Extensions (SPE) support (Kim
           Phillips)
      
         - libtraceevent updates (Steven Rostedt)
      
         - Intel vendor event JSON updates (Andi Kleen)
      
         - Introduce 'perf report --mmaps' and 'perf report --tasks' to show
           info present in 'perf.data' (Jiri Olsa, Arnaldo Carvalho de Melo)
      
         - Add infrastructure to record first and last sample time to the
           perf.data file header, so that when processing all samples in a
           'perf record' session, such as when doing build-id processing, or
           when specifically requesting that that info be recorded, use that
           in 'perf report --time', that also got support for percent slices
           in addition to absolute ones.
      
           I.e. now it is possible to ask for the samples in the 10%-20% time
           slice of a perf.data file (Jin Yao)
      
         - Allow system wide 'perf stat --per-thread', sorting the result (Jin
           Yao)
      
           E.g.:
      
            [root@jouet ~]# perf stat --per-thread --metrics IPC
            ^C
             Performance counter stats for 'system wide':
      
                        make-22229  23,012,094,032  inst_retired.any   #  0.8 IPC
                         cc1-22419     692,027,497  inst_retired.any   #  0.8 IPC
                         gcc-22418     328,231,855  inst_retired.any   #  0.9 IPC
                         cc1-22509     220,853,647  inst_retired.any   #  0.8 IPC
                         gcc-22486     199,874,810  inst_retired.any   #  1.0 IPC
                          as-22466     177,896,365  inst_retired.any   #  0.9 IPC
                         cc1-22465     150,732,374  inst_retired.any   #  0.8 IPC
                         gcc-22508     112,555,593  inst_retired.any   #  0.9 IPC
                         cc1-22487     108,964,079  inst_retired.any   #  0.7 IPC
             qemu-system-x86-2697       21,330,550  inst_retired.any   #  0.3 IPC
             systemd-journal-551        20,642,951  inst_retired.any   #  0.4 IPC
             docker-containe-17651       9,552,892  inst_retired.any   #  0.5 IPC
             dockerd-current-9809        7,528,586  inst_retired.any   #  0.5 IPC
                        make-22153  12,504,194,380  inst_retired.any   #  0.8 IPC
                     python2-22429  12,081,290,954  inst_retired.any   #  0.8 IPC
            <SNIP>
                     python2-22429  15,026,328,103  cpu_clk_unhalted.thread
                         cc1-22419     826,660,193  cpu_clk_unhalted.thread
                         gcc-22418     365,321,295  cpu_clk_unhalted.thread
                         cc1-22509     279,169,362  cpu_clk_unhalted.thread
                         gcc-22486     210,156,950  cpu_clk_unhalted.thread
            <SNIP>
      
                 5.638075538 seconds time elapsed
      
           [root@jouet ~]#
      
         - Improve shell auto-completion of perf events (Jin Yao)
      
         - 'perf probe' improvements (Masami Hiramatsu)
      
         - Improve PMU infrastructure to support amp64's ThunderX2
           implementation defined core events (Ganapatrao Kulkarni)
      
         - Various annotation related improvements and fixes (Thomas Richter)
      
         - Clarify usage of 'overwrite' and 'backward' in the evlist/mmap
           code, removing the 'overwrite' parameter from several functions as
           it was always used it as 'false' (Wang Nan)
      
         - Fix/improve 'perf record' reverse recording support (Wang Nan)
      
         - Improve command line options documentation (Sihyeon Jang)
      
         - Optimize sample parsing for ordering events, where we don't need to
           parse all the PERF_SAMPLE_ bits, just the ones leading to the
           timestamp needed to reorder events (Jiri Olsa)
      
         - Generalize the annotation code to support other source information
           besides objdump/DWARF obtained ones, starting with python scripts,
           that will is slated to be merged soon (Jiri Olsa)
      
         - ... and a lot more that I failed to list, see the shortlog and
           changelog for details"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (262 commits)
        perf trace beauty flock: Move to separate object file
        perf evlist: Remove fcntl.h from evlist.h
        perf trace beauty futex: Beautify FUTEX_BITSET_MATCH_ANY
        perf trace: Do not print from time delta for interrupted syscall lines
        perf trace: Add --print-sample
        perf bpf: Remove misplaced __maybe_unused attribute
        MAINTAINERS: Adding entry for CoreSight trace decoding
        perf tools: Add mechanic to synthesise CoreSight trace packets
        perf tools: Add full support for CoreSight trace decoding
        pert tools: Add queue management functionality
        perf tools: Add functionality to communicate with the openCSD decoder
        perf tools: Add support for decoding CoreSight trace data
        perf tools: Add decoder mechanic to support dumping trace data
        perf tools: Add processing of coresight metadata
        perf tools: Add initial entry point for decoder CoreSight traces
        perf tools: Integrating the CoreSight decoding library
        perf vendor events intel: Update IvyTown files to V20
        perf vendor events intel: Update IvyBridge files to V20
        perf vendor events intel: Update BroadwellDE events to V7
        perf vendor events intel: Update SkylakeX events to V1.06
        ...
      d8b91dde
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5e7481a2
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "The main changes relate to making lock_is_held() et al (and external
        wrappers of them) work on const data types - this requires const
        propagation through the depths of lockdep.
      
        This removes a number of ugly type hacks the external helpers used"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        lockdep: Convert some users to const
        lockdep: Make lockdep checking constant
        lockdep: Assign lock keys on registration
      5e7481a2
    • Linus Torvalds's avatar
      Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b8dbf730
      Linus Torvalds authored
      Pull EFI updates from Ingo Molnar:
       "The biggest change in this cycle was the addition of ARM CPER error
        decoding when printing EFI errors into the kernel log.
      
        There are also misc smaller updates: documentation update, cleanups
        and an EFI memory map permissions quirk"
      
      * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/efi: Clarify that reset attack mitigation needs appropriate userspace
        efi: Parse ARM error information value
        efi: Move ARM CPER code to new file
        efi: Use PTR_ERR_OR_ZERO()
        arm64/efi: Ignore EFI_MEMORY_XP attribute if RP and/or WP are set
        efi/capsule-loader: Fix pr_err() string to end with newline
      b8dbf730
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d7727946
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "The main RCU changes in this cycle were:
      
         - Updates to use cond_resched() instead of cond_resched_rcu_qs()
           where feasible (currently everywhere except in kernel/rcu and in
           kernel/torture.c). Also a couple of fixes to avoid sending IPIs to
           offline CPUs.
      
         - Updates to simplify RCU's dyntick-idle handling.
      
         - Updates to remove almost all uses of smp_read_barrier_depends() and
           read_barrier_depends().
      
         - Torture-test updates.
      
         - Miscellaneous fixes"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (72 commits)
        torture: Save a line in stutter_wait(): while -> for
        torture: Eliminate torture_runnable and perf_runnable
        torture: Make stutter less vulnerable to compilers and races
        locking/locktorture: Fix num reader/writer corner cases
        locking/locktorture: Fix rwsem reader_delay
        torture: Place all torture-test modules in one MAINTAINERS group
        rcutorture/kvm-build.sh: Skip build directory check
        rcutorture: Simplify functions.sh include path
        rcutorture: Simplify logging
        rcutorture/kvm-recheck-*: Improve result directory readability check
        rcutorture/kvm.sh: Support execution from any directory
        rcutorture/kvm.sh: Use consistent help text for --qemu-args
        rcutorture/kvm.sh: Remove unused variable, `alldone`
        rcutorture: Remove unused script, config2frag.sh
        rcutorture/configinit: Fix build directory error message
        rcutorture: Preempt RCU-preempt readers more vigorously
        torture: Reduce #ifdefs for preempt_schedule()
        rcu: Remove have_rcu_nocb_mask from tree_plugin.h
        rcu: Add comment giving debug strategy for double call_rcu()
        tracing, rcu: Hide trace event rcu_nocb_wake when not used
        ...
      d7727946
    • Linus Torvalds's avatar
      Merge branch 'core-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c1488798
      Linus Torvalds authored
      Pull STRICT_DEVMEM default from Ingo Molnar:
       "Make CONFIG_STRICT_DEVMEM default-y on x86 and arm64 as well, to
        follow the distro status quo"
      
      * 'core-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Kconfig: Make STRICT_DEVMEM default-y on x86 and arm64
      c1488798
    • Florian Schmidt's avatar
      Documentation: Fix 'file_mapped' -> 'mapped_file' · 03eac8b2
      Florian Schmidt authored
      There is no entry file_mapped in the memory.stat file. This looks like a
      simple word flip that's gone unnoticed since 2010 (dc10e281,
      memcg: update documentation).
      Signed-off-by: default avatarFlorian Schmidt <florian.schmidt@neclab.eu>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      03eac8b2
    • Linus Torvalds's avatar
      Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6304672b
      Linus Torvalds authored
      Pull x86/pti updates from Thomas Gleixner:
       "Another set of melted spectrum related changes:
      
         - Code simplifications and cleanups for RSB and retpolines.
      
         - Make the indirect calls in KVM speculation safe.
      
         - Whitelist CPUs which are known not to speculate from Meltdown and
           prepare for the new CPUID flag which tells the kernel that a CPU is
           not affected.
      
         - A less rigorous variant of the module retpoline check which merily
           warns when a non-retpoline protected module is loaded and reflects
           that fact in the sysfs file.
      
         - Prepare for Indirect Branch Prediction Barrier support.
      
         - Prepare for exposure of the Speculation Control MSRs to guests, so
           guest OSes which depend on those "features" can use them. Includes
           a blacklist of the broken microcodes. The actual exposure of the
           MSRs through KVM is still being worked on"
      
      * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/speculation: Simplify indirect_branch_prediction_barrier()
        x86/retpoline: Simplify vmexit_fill_RSB()
        x86/cpufeatures: Clean up Spectre v2 related CPUID flags
        x86/cpu/bugs: Make retpoline module warning conditional
        x86/bugs: Drop one "mitigation" from dmesg
        x86/nospec: Fix header guards names
        x86/alternative: Print unadorned pointers
        x86/speculation: Add basic IBPB (Indirect Branch Prediction Barrier) support
        x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes
        x86/pti: Do not enable PTI on CPUs which are not vulnerable to Meltdown
        x86/msr: Add definitions for new speculation control MSRs
        x86/cpufeatures: Add AMD feature bits for Speculation Control
        x86/cpufeatures: Add Intel feature bits for Speculation Control
        x86/cpufeatures: Add CPUID_7_EDX CPUID leaf
        module/retpoline: Warn about missing retpoline in module
        KVM: VMX: Make indirect call speculation safe
        KVM: x86: Make indirect calls in emulator speculation safe
      6304672b
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 94263352
      Linus Torvalds authored
      Pull x86 mm update from Thomas Gleixner:
       "A single patch which excludes the GART aperture from vmcore as
        accessing that area from a dump kernel can crash the kernel.
      
        Not necessarily the nicest way to fix this, but curing this from
        ground up requires a more thorough rewrite of the whole kexec/kdump
        magic"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/gart: Exclude GART aperture from vmcore
      94263352
    • Linus Torvalds's avatar
      Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 36c289e7
      Linus Torvalds authored
      Pull x86 timer updates from Thomas Gleixner:
       "A small set of updates for x86 specific timers:
      
         - Mark TSC invariant on a subset of Centaur CPUs
      
         - Allow TSC calibration without PIT on mobile platforms which lack
           legacy devices"
      
      * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/centaur: Mark TSC invariant
        x86/tsc: Introduce early tsc clocksource
        x86/time: Unconditionally register legacy timer interrupt
        x86/tsc: Allow TSC calibration without PIT
      36c289e7
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 669c0f76
      Linus Torvalds authored
      Pull x86 platform updates from Thomas Gleixner:
       "The platform support for x86 contains the following updates:
      
         - A set of updates for the UV platform to support new CPUs and to fix
           some of the UV4A BAU MRRs
      
         - The initial platform support for the jailhouse hypervisor to allow
           native Linux guests (inmates) in non-root cells.
      
         - A fix for the PCI initialization on Intel MID platforms"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        x86/jailhouse: Respect pci=lastbus command line settings
        x86/jailhouse: Set X86_FEATURE_TSC_KNOWN_FREQ
        x86/platform/intel-mid: Move PCI initialization to arch_init()
        x86/platform/uv/BAU: Replace hard-coded values with MMR definitions
        x86/platform/UV: Fix UV4A BAU MMRs
        x86/platform/UV: Fix GAM MMR references in the UV x2apic code
        x86/platform/UV: Fix GAM MMR changes in UV4A
        x86/platform/UV: Add references to access fixed UV4A HUB MMRs
        x86/platform/UV: Fix UV4A support on new Intel Processors
        x86/platform/UV: Update uv_mmrs.h to prepare for UV4A fixes
        x86/jailhouse: Add PCI dependency
        x86/jailhouse: Hide x2apic code when CONFIG_X86_X2APIC=n
        x86/jailhouse: Initialize PCI support
        x86/jailhouse: Wire up IOAPIC for legacy UART ports
        x86/jailhouse: Halt instead of failing to restart
        x86/jailhouse: Silence ACPI warning
        x86/jailhouse: Avoid access of unsupported platform resources
        x86/jailhouse: Set up timekeeping
        x86/jailhouse: Enable PMTIMER
        x86/jailhouse: Enable APIC and SMP support
        ...
      669c0f76
    • Linus Torvalds's avatar
      Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f0b13428
      Linus Torvalds authored
      Pull x86/cache updates from Thomas Gleixner:
       "A set of patches which add support for L2 cache partitioning to the
        Intel RDT facility"
      
      * 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/intel_rdt: Add command line parameter to control L2_CDP
        x86/intel_rdt: Enable L2 CDP in MSR IA32_L2_QOS_CFG
        x86/intel_rdt: Add two new resources for L2 Code and Data Prioritization (CDP)
        x86/intel_rdt: Enumerate L2 Code and Data Prioritization (CDP) feature
        x86/intel_rdt: Add L2CDP support in documentation
        x86/intel_rdt: Update documentation
      f0b13428
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a46d3f9b
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "The timer departement presents:
      
         - A rather large rework of the hrtimer infrastructure which
           introduces softirq based hrtimers to replace the spread of
           hrtimer/tasklet combos which force the actual callback execution
           into softirq context. The approach is completely different from the
           initial implementation which you cursed at 10 years ago rightfully.
      
           The softirq based timers have their own queues and there is no
           nasty indirection and list reshuffling in the hard interrupt
           anymore. This comes with conversion of some of the hrtimer/tasklet
           users, the rest and the final removal of that horrible interface
           will come towards the end of the merge window or go through the
           relevant maintainer trees.
      
           Note: The top commit merged the last minute bugfix for the 10 years
           old CPU hotplug bug as I wanted to make sure that I fatfinger the
           merge conflict resolution myself.
      
         - The overhaul of the STM32 clocksource/clockevents driver
      
         - A new driver for the Spreadtrum SC9860 timer
      
         - A new driver dor the Actions Semi S700 timer
      
         - The usual set of fixes and updates all over the place"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (53 commits)
        usb/gadget/NCM: Replace tasklet with softirq hrtimer
        ALSA/dummy: Replace tasklet with softirq hrtimer
        hrtimer: Implement SOFT/HARD clock base selection
        hrtimer: Implement support for softirq based hrtimers
        hrtimer: Prepare handling of hard and softirq based hrtimers
        hrtimer: Add clock bases and hrtimer mode for softirq context
        hrtimer: Use irqsave/irqrestore around __run_hrtimer()
        hrtimer: Factor out __hrtimer_next_event_base()
        hrtimer: Factor out __hrtimer_start_range_ns()
        hrtimer: Remove the 'base' parameter from hrtimer_reprogram()
        hrtimer: Make remote enqueue decision less restrictive
        hrtimer: Unify remote enqueue handling
        hrtimer: Unify hrtimer removal handling
        hrtimer: Make hrtimer_force_reprogramm() unconditionally available
        hrtimer: Make hrtimer_reprogramm() unconditional
        hrtimer: Make hrtimer_cpu_base.next_timer handling unconditional
        hrtimer: Make the remote enqueue check unconditional
        hrtimer: Use accesor functions instead of direct access
        hrtimer: Make the hrtimer_cpu_base::hres_active field unconditional, to simplify the code
        hrtimer: Make room in 'struct hrtimer_cpu_base'
        ...
      a46d3f9b
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7bcd3425
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "A rather small set of irq updates this time:
      
         - removal of the old and now obsolete irq domain debugging code
      
         - the new Goldfish PIC driver
      
         - the usual pile of small fixes and updates"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqdomain: Kill CONFIG_IRQ_DOMAIN_DEBUG
        irq/work: Improve the flag definitions
        irqchip/gic-v3: Fix the driver probe() fail due to disabled GICC entry
        irqchip/irq-goldfish-pic: Add Goldfish PIC driver
        dt-bindings/goldfish-pic: Add device tree binding for Goldfish PIC driver
        irqchip/ompic: fix return value check in ompic_of_init()
        dt-bindings/bcm283x: Define polarity of per-cpu interrupts
        irqchip/irq-bcm2836: Add support for DT interrupt polarity
        dt-bindings/bcm2836-l1-intc: Add interrupt polarity support
      7bcd3425
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20180129' of git://github.com/jcmvbkbc/linux-xtensa · d0bd31dc
      Linus Torvalds authored
      Pull Xtensa updates from Max Filippov:
      
       - add SSP support
      
       - add KASAN support
      
       - improvements to xtensa-specific assembly:
          - use ENTRY and ENDPROC consistently
          - clean up and unify word alignment macros
          - clean up and unify fixup marking
          - use 'call' instead of 'callx' where possible
      
       - various cleanups:
          - consiolidate kernel stack size related definitions
          - replace #ifdef'fed/commented out debug printk statements with
            pr_debug
          - use struct exc_table instead of flat array for exception handling
            data
      
       - build kernel with -mtext-section-literals; simplify xtensa linker
         script
      
       - fix futex_atomic_cmpxchg_inatomic()
      
      * tag 'xtensa-20180129' of git://github.com/jcmvbkbc/linux-xtensa: (21 commits)
        xtensa: fix futex_atomic_cmpxchg_inatomic
        xtensa: shut up gcc-8 warnings
        xtensa: print kernel sections info in mem_init
        xtensa: use generic strncpy_from_user with KASAN
        xtensa: use __memset in __xtensa_clear_user
        xtensa: add support for KASAN
        xtensa: move fixmap and kmap just above the KSEG
        xtensa: don't clear swapper_pg_dir in paging_init
        xtensa: extract init_kio
        xtensa: implement early_trap_init
        xtensa: clean up exception handling structure
        xtensa: clean up custom-controlled debug output
        xtensa: enable stack protector
        xtensa: print hardware config ID on startup
        xtensa: consolidate kernel stack size related definitions
        xtensa: clean up functions in assembly code
        xtensa: clean up word alignment macros in assembly code
        xtensa: clean up fixups in assembly code
        xtensa: use call instead of callx in assembly code
        xtensa: build kernel with text-section-literals
        ...
      d0bd31dc
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v4.16-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · aca21de2
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
        - first part of an overhaul of the NuBus subsystem, to bring it up to
          modern driver model standards
      
        - a race condition fix for Mac
      
        - defconfig updates
      
      * tag 'm68k-for-v4.16-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        MAINTAINERS: Add NuBus subsystem entry
        m68k/mac: Fix race conditions in OSS interrupt dispatch
        nubus: Add support for the driver model
        nubus: Add expansion_type values for various Mac models
        nubus: Adopt standard linked list implementation
        nubus: Rename struct nubus_dev
        nubus: Rework /proc/bus/nubus/s/ implementation
        nubus: Generalize block resource handling
        nubus: Clean up whitespace
        nubus: Remove redundant code
        nubus: Call proc_mkdir() not more than once per slot directory
        nubus: Validate slot resource IDs
        nubus: Fix log spam
        nubus: Use static functions where possible
        nubus: Fix up header split
        nubus: Avoid array underflow and overflow
        m68k/defconfig: Update defconfigs for v4.15-rc1
      aca21de2
  3. 29 Jan, 2018 6 commits
    • Linus Torvalds's avatar
      Merge tag 'for-4.16-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 31466f3e
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "Features or user visible changes:
      
         - fallocate: implement zero range mode
      
         - avoid losing data raid profile when deleting a device
      
         - tree item checker: more checks for directory items and xattrs
      
        Notable fixes:
      
         - raid56 recovery: don't use cached stripes, that could be
           potentially changed and a later RMW or recovery would lead to
           corruptions or failures
      
         - let raid56 try harder to rebuild damaged data, reading from all
           stripes if necessary
      
         - fix scrub to repair raid56 in a similar way as in the case above
      
        Other:
      
         - cleanups: device freeing, removed some call indirections, redundant
           bio_put/_get, unused parameters, refactorings and renames
      
         - RCU list traversal fixups
      
         - simplify mount callchain, remove recursing back when mounting a
           subvolume
      
         - plug for fsync, may improve bio merging on multiple devices
      
         - compression heurisic: replace heap sort with radix sort, gains some
           performance
      
         - add extent map selftests, buffered write vs dio"
      
      * tag 'for-4.16-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (155 commits)
        btrfs: drop devid as device_list_add() arg
        btrfs: get device pointer from device_list_add()
        btrfs: set the total_devices in device_list_add()
        btrfs: move pr_info into device_list_add
        btrfs: make btrfs_free_stale_devices() to match the path
        btrfs: rename btrfs_free_stale_devices() arg to skip_dev
        btrfs: make btrfs_free_stale_devices() argument optional
        btrfs: make btrfs_free_stale_device() to iterate all stales
        btrfs: no need to check for btrfs_fs_devices::seeding
        btrfs: Use IS_ALIGNED in btrfs_truncate_block instead of opencoding it
        Btrfs: noinline merge_extent_mapping
        Btrfs: add WARN_ONCE to detect unexpected error from merge_extent_mapping
        Btrfs: extent map selftest: dio write vs dio read
        Btrfs: extent map selftest: buffered write vs dio read
        Btrfs: add extent map selftests
        Btrfs: move extent map specific code to extent_map.c
        Btrfs: add helper for em merge logic
        Btrfs: fix unexpected EEXIST from btrfs_get_extent
        Btrfs: fix incorrect block_len in merge_extent_mapping
        btrfs: Remove unused readahead spinlock
        ...
      31466f3e
    • Linus Torvalds's avatar
      Merge tag '4.16-rc-SMB3' of git://git.samba.org/sfrench/cifs-2.6 · 6787dc24
      Linus Torvalds authored
      Pull cifs updates from Steve French:
       "Some fixes for stable, fixed SMB3 DFS support, SMB3 Direct (RDMA) and
        various bug fixes and cleanup"
      
      * tag '4.16-rc-SMB3' of git://git.samba.org/sfrench/cifs-2.6: (60 commits)
        fs/cifs/cifsacl.c Fixes typo in a comment
        update internal version number for cifs.ko
        cifs: add .splice_write
        CIFS: document tcon/ses/server refcount dance
        move a few externs to smbdirect.h to eliminate warning
        CIFS: zero sensitive data when freeing
        Cleanup some minor endian issues in smb3 rdma
        CIFS: dump IPC tcon in debug proc file
        CIFS: use tcon_ipc instead of use_ipc parameter of SMB2_ioctl
        CIFS: make IPC a regular tcon
        cifs: remove redundant duplicated assignment of pointer 'node'
        CIFS: SMBD: work around gcc -Wmaybe-uninitialized warning
        cifs: Fix autonegotiate security settings mismatch
        CIFS: SMBD: _smbd_get_connection() can be static
        CIFS: SMBD: Disable signing on SMB direct transport
        CIFS: SMBD: Add SMB Direct debug counters
        CIFS: SMBD: Upper layer performs SMB read via RDMA write through memory registration
        CIFS: SMBD: Read correct returned data length for RDMA write (SMB read) I/O
        CIFS: SMBD: Upper layer performs SMB write via RDMA read through memory registration
        CIFS: SMBD: Implement RDMA memory registration
        ...
      6787dc24
    • Linus Torvalds's avatar
      Merge tag 'iversion-v4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · a4b7fd7d
      Linus Torvalds authored
      Pull inode->i_version rework from Jeff Layton:
       "This pile of patches is a rework of the inode->i_version field. We
        have traditionally incremented that field on every inode data or
        metadata change. Typically this increment needs to be logged on disk
        even when nothing else has changed, which is rather expensive.
      
        It turns out though that none of the consumers of that field actually
        require this behavior. The only real requirement for all of them is
        that it be different iff the inode has changed since the last time the
        field was checked.
      
        Given that, we can optimize away most of the i_version increments and
        avoid dirtying inode metadata when the only change is to the i_version
        and no one is querying it. Queries of the i_version field are rather
        rare, so we can help write performance under many common workloads.
      
        This patch series converts existing accesses of the i_version field to
        a new API, and then converts all of the in-kernel filesystems to use
        it. The last patch in the series then converts the backend
        implementation to a scheme that optimizes away a large portion of the
        metadata updates when no one is looking at it.
      
        In my own testing this series significantly helps performance with
        small I/O sizes. I also got this email for Christmas this year from
        the kernel test robot (a 244% r/w bandwidth improvement with XFS over
        DAX, with 4k writes):
      
          https://lkml.org/lkml/2017/12/25/8
      
        A few of the earlier patches in this pile are also flowing to you via
        other trees (mm, integrity, and nfsd trees in particular)".
      
      * tag 'iversion-v4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux: (22 commits)
        fs: handle inode->i_version more efficiently
        btrfs: only dirty the inode in btrfs_update_time if something was changed
        xfs: avoid setting XFS_ILOG_CORE if i_version doesn't need incrementing
        fs: only set S_VERSION when updating times if necessary
        IMA: switch IMA over to new i_version API
        xfs: convert to new i_version API
        ufs: use new i_version API
        ocfs2: convert to new i_version API
        nfsd: convert to new i_version API
        nfs: convert to new i_version API
        ext4: convert to new i_version API
        ext2: convert to new i_version API
        exofs: switch to new i_version API
        btrfs: convert to new i_version API
        afs: convert to new i_version API
        affs: convert to new i_version API
        fat: convert to new i_version API
        fs: don't take the i_lock in inode_inc_iversion
        fs: new API for handling inode->i_version
        ntfs: remove i_version handling
        ...
      a4b7fd7d
    • Linus Torvalds's avatar
      Merge tag 'upstream-4.16-rc1' of git://git.infradead.org/linux-ubifs · d1de762e
      Linus Torvalds authored
      Pull UBI/UBIFS updates from Richard Weinberger:
      
       - use the new fscrypt APIs
      
       - a fix for a Fastmap issue
      
       - other minor bug fixes
      
      * tag 'upstream-4.16-rc1' of git://git.infradead.org/linux-ubifs:
        ubi: block: Fix locking for idr_alloc/idr_remove
        mtd: ubi: wl: Fix error return code in ubi_wl_init()
        ubi: Fix copy/paste error in function documentation
        ubi: Fastmap: Fix typo
        ubifs: remove error message in ubifs_xattr_get
        ubi: fastmap: Erase outdated anchor PEBs during attach
        ubifs: switch to fscrypt_prepare_setattr()
        ubifs: switch to fscrypt_prepare_lookup()
        ubifs: switch to fscrypt_prepare_rename()
        ubifs: switch to fscrypt_prepare_link()
        ubifs: switch to fscrypt_file_open()
        ubi: fastmap: Clean up the initialization of pointer p
        ubi: fastmap: Use kmem_cache_free to deallocate memory
        ubi: Fix race condition between ubi volume creation and udev
        mtd: ubi: Use 'max_bad_blocks' to compute bad_peb_limit if available
        ubifs: Fix uninitialized variable in search_dh_cookie()
      d1de762e
    • Linus Torvalds's avatar
      Merge branch 'for-4.16/block' of git://git.kernel.dk/linux-block · 0a4b6e2f
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
       "This is the main pull request for block IO related changes for the
        4.16 kernel. Nothing major in this pull request, but a good amount of
        improvements and fixes all over the map. This contains:
      
         - BFQ improvements, fixes, and cleanups from Angelo, Chiara, and
           Paolo.
      
         - Support for SMR zones for deadline and mq-deadline from Damien and
           Christoph.
      
         - Set of fixes for bcache by way of Michael Lyle, including fixes
           from himself, Kent, Rui, Tang, and Coly.
      
         - Series from Matias for lightnvm with fixes from Hans Holmberg,
           Javier, and Matias. Mostly centered around pblk, and the removing
           rrpc 1.2 in preparation for supporting 2.0.
      
         - A couple of NVMe pull requests from Christoph. Nothing major in
           here, just fixes and cleanups, and support for command tracing from
           Johannes.
      
         - Support for blk-throttle for tracking reads and writes separately.
           From Joseph Qi. A few cleanups/fixes also for blk-throttle from
           Weiping.
      
         - Series from Mike Snitzer that enables dm to register its queue more
           logically, something that's alwways been problematic on dm since
           it's a stacked device.
      
         - Series from Ming cleaning up some of the bio accessor use, in
           preparation for supporting multipage bvecs.
      
         - Various fixes from Ming closing up holes around queue mapping and
           quiescing.
      
         - BSD partition fix from Richard Narron, fixing a problem where we
           can't mount newer (10/11) FreeBSD partitions.
      
         - Series from Tejun reworking blk-mq timeout handling. The previous
           scheme relied on atomic bits, but it had races where we would think
           a request had timed out if it to reused at the wrong time.
      
         - null_blk now supports faking timeouts, to enable us to better
           exercise and test that functionality separately. From me.
      
         - Kill the separate atomic poll bit in the request struct. After
           this, we don't use the atomic bits on blk-mq anymore at all. From
           me.
      
         - sgl_alloc/free helpers from Bart.
      
         - Heavily contended tag case scalability improvement from me.
      
         - Various little fixes and cleanups from Arnd, Bart, Corentin,
           Douglas, Eryu, Goldwyn, and myself"
      
      * 'for-4.16/block' of git://git.kernel.dk/linux-block: (186 commits)
        block: remove smart1,2.h
        nvme: add tracepoint for nvme_complete_rq
        nvme: add tracepoint for nvme_setup_cmd
        nvme-pci: introduce RECONNECTING state to mark initializing procedure
        nvme-rdma: remove redundant boolean for inline_data
        nvme: don't free uuid pointer before printing it
        nvme-pci: Suspend queues after deleting them
        bsg: use pr_debug instead of hand crafted macros
        blk-mq-debugfs: don't allow write on attributes with seq_operations set
        nvme-pci: Fix queue double allocations
        block: Set BIO_TRACE_COMPLETION on new bio during split
        blk-throttle: use queue_is_rq_based
        block: Remove kblockd_schedule_delayed_work{,_on}()
        blk-mq: Avoid that blk_mq_delay_run_hw_queue() introduces unintended delays
        blk-mq: Rename blk_mq_request_direct_issue() into blk_mq_request_issue_directly()
        lib/scatterlist: Fix chaining support in sgl_alloc_order()
        blk-throttle: track read and write request individually
        block: add bdev_read_only() checks to common helpers
        block: fail op_is_write() requests to read-only partitions
        blk-throttle: export io_serviced_recursive, io_service_bytes_recursive
        ...
      0a4b6e2f
    • Linus Torvalds's avatar
      Merge tag 'edac_for_4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 9697e9da
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - new EDAC driver for some TI SOCs (Tero Kristo)
      
       - small cleanups
      
      * tag 'edac_for_4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
        EDAC, mv64x60: Fix an error handling path
        EDAC, ti: Add support for TI keystone and DRA7xx EDAC
        EDAC, octeon: Fix an uninitialized variable warning
      9697e9da