1. 31 Jan, 2018 13 commits
    • Linus Torvalds's avatar
      Merge tag 'for-4.16/dm-changes' of... · 0be600a5
      Linus Torvalds authored
      Merge tag 'for-4.16/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - DM core fixes to ensure that bio submission follows a depth-first
         tree walk; this is critical to allow forward progress without the
         need to use the bioset's BIOSET_NEED_RESCUER.
      
       - Remove DM core's BIOSET_NEED_RESCUER based dm_offload infrastructure.
      
       - DM core cleanups and improvements to make bio-based DM more efficient
         (e.g. reduced memory footprint as well leveraging per-bio-data more).
      
       - Introduce new bio-based mode (DM_TYPE_NVME_BIO_BASED) that leverages
         the more direct IO submission path in the block layer; this mode is
         used by DM multipath and also optimizes targets like DM thin-pool
         that stack directly on NVMe data device.
      
       - DM multipath improvements to factor out legacy SCSI-only (e.g.
         scsi_dh) code paths to allow for more optimized support for NVMe
         multipath.
      
       - A fix for DM multipath path selectors (service-time and queue-length)
         to select paths in a more balanced way; largely academic but doesn't
         hurt.
      
       - Numerous DM raid target fixes and improvements.
      
       - Add a new DM "unstriped" target that enables Intel to workaround
         firmware limitations in some NVMe drives that are striped internally
         (this target also works when stacked above the DM "striped" target).
      
       - Various Documentation fixes and improvements.
      
       - Misc cleanups and fixes across various DM infrastructure and targets
         (e.g. bufio, flakey, log-writes, snapshot).
      
      * tag 'for-4.16/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (69 commits)
        dm cache: Documentation: update default migration_throttling value
        dm mpath selector: more evenly distribute ties
        dm unstripe: fix target length versus number of stripes size check
        dm thin: fix trailing semicolon in __remap_and_issue_shared_cell
        dm table: fix NVMe bio-based dm_table_determine_type() validation
        dm: various cleanups to md->queue initialization code
        dm mpath: delay the retry of a request if the target responded as busy
        dm mpath: return DM_MAPIO_DELAY_REQUEUE if QUEUE_IO or PG_INIT_REQUIRED
        dm mpath: return DM_MAPIO_REQUEUE on blk-mq rq allocation failure
        dm log writes: fix max length used for kstrndup
        dm: backfill missing calls to mutex_destroy()
        dm snapshot: use mutex instead of rw_semaphore
        dm flakey: check for null arg_name in parse_features()
        dm thin: extend thinpool status format string with omitted fields
        dm thin: fixes in thin-provisioning.txt
        dm thin: document representation of <highest mapped sector> when there is none
        dm thin: fix documentation relative to low water mark threshold
        dm cache: be consistent in specifying sectors and SI units in cache.txt
        dm cache: delete obsoleted paragraph in cache.txt
        dm cache: fix grammar in cache-policies.txt
        ...
      0be600a5
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md · 040639b7
      Linus Torvalds authored
      Pull MD updates from Shaohua Li:
       "Some small fixes for MD:
      
         - fix raid5-cache potential problems if raid5 cache isn't fully
           recovered
      
         - fix a wait-within-wait warning in raid1/10
      
         - make raid5-PPL support disks with writeback cache enabled"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
        raid5-ppl: PPL support for disks with write-back cache enabled
        md/r5cache: print more info of log recovery
        md/raid1,raid10: silence warning about wait-within-wait
        md: introduce new personality funciton start()
      040639b7
    • Linus Torvalds's avatar
      Merge tag 'xfs-4.16-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 20c59c71
      Linus Torvalds authored
      Pull xfs updates from Darrick Wong:
       "This merge cycle, we're again some substantive changes to XFS.
      
        Metadata verifiers have been restructured to provide more detail about
        which part of a metadata structure failed checks, and we've enhanced
        the new online fsck feature to cross-reference extent allocation
        information with the other metadata structures. With this pull, the
        metadata verification part of online fsck is more or less finished,
        though the feature is still experimental and still disabled by
        default.
      
        We're also preparing to remove the EXPERIMENTAL tag from a couple of
        features this cycle. This week we're committing a bunch of space
        accounting fixes for reflink and removing the EXPERIMENTAL tag from
        reflink; I anticipate that we'll be ready to do the same for the
        reverse mapping feature next week. (I don't have any pending fixes for
        rmap; however I wish to remove the tags one at a time.)
      
        This giant pile of patches has been run through a full xfstests run
        over the weekend and through a quick xfstests run against this
        morning's master, with no major failures reported. Let me know if
        there's any merge problems -- git merge reported that one of our
        patches touched the same function as the i_version series, but it
        resolved things cleanly.
      
        Summary:
      
         - Log faulting code locations when verifiers fail, for improved
           diagnosis of corrupt filesystems.
      
         - Implement metadata verifiers for local format inode fork data.
      
         - Online scrub now cross-references metadata records with other
           metadata.
      
         - Refactor the fs geometry ioctl generation functions.
      
         - Harden various metadata verifiers.
      
         - Fix various accounting problems.
      
         - Fix uncancelled transactions leaking when xattr functions fail.
      
         - Prevent the copy-on-write speculative preallocation garbage
           collector from racing with writeback.
      
         - Emit log reservation type information as trace data so that we can
           compare against xfsprogs.
      
         - Fix some erroneous asserts in the online scrub code.
      
         - Clean up the transaction reservation calculations.
      
         - Fix various minor bugs in online scrub.
      
         - Log complaints about mixed dio/buffered writes once per day and
           less noisily than before.
      
         - Refactor buffer log item lists to use list_head.
      
         - Break PNFS leases before reflinking blocks.
      
         - Reduce lock contention on reflink source files.
      
         - Fix some quota accounting problems with reflink.
      
         - Fix a serious corruption problem in the direct cow write code where
           we fed bad iomaps to the vfs iomap consumers.
      
         - Various other refactorings.
      
         - Remove EXPERIMENTAL tag from reflink!"
      
      * tag 'xfs-4.16-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (94 commits)
        xfs: remove experimental tag for reflinks
        xfs: don't screw up direct writes when freesp is fragmented
        xfs: check reflink allocation mappings
        iomap: warn on zero-length mappings
        xfs: treat CoW fork operations as delalloc for quota accounting
        xfs: only grab shared inode locks for source file during reflink
        xfs: allow xfs_lock_two_inodes to take different EXCL/SHARED modes
        xfs: reflink should break pnfs leases before sharing blocks
        xfs: don't clobber inobt/finobt cursors when xref with rmap
        xfs: skip CoW writes past EOF when writeback races with truncate
        xfs: preserve i_rdev when recycling a reclaimable inode
        xfs: refactor accounting updates out of xfs_bmap_btalloc
        xfs: refactor inode verifier corruption error printing
        xfs: make tracepoint inode number format consistent
        xfs: always zero di_flags2 when we free the inode
        xfs: call xfs_qm_dqattach before performing reflink operations
        xfs: bmap code cleanup
        Use list_head infra-structure for buffer's log items list
        Split buffer's b_fspriv field
        Get rid of xfs_buf_log_item_t typedef
        ...
      20c59c71
    • Linus Torvalds's avatar
      Merge branch 'work.get_user_pages_fast' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 5a87e37e
      Linus Torvalds authored
      Pull get_user_pages_fast updates from Al Viro:
       "A bit more get_user_pages work"
      
      * 'work.get_user_pages_fast' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        kvm: switch get_user_page_nowait() to get_user_pages_unlocked()
        __get_user_pages_locked(): get rid of notify_drop argument
        get_user_pages_unlocked(): pass true to __get_user_pages_locked() notify_drop
        cris: switch to get_user_pages_fast()
        fold __get_user_pages_unlocked() into its sole remaining caller
      5a87e37e
    • Linus Torvalds's avatar
      Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 19e7b5f9
      Linus Torvalds authored
      Pull misc vfs updates from Al Viro:
       "All kinds of misc stuff, without any unifying topic, from various
        people.
      
        Neil's d_anon patch, several bugfixes, introduction of kvmalloc
        analogue of kmemdup_user(), extending bitfield.h to deal with
        fixed-endians, assorted cleanups all over the place..."
      
      * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (28 commits)
        alpha: osf_sys.c: use timespec64 where appropriate
        alpha: osf_sys.c: fix put_tv32 regression
        jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path
        dcache: delete unused d_hash_mask
        dcache: subtract d_hash_shift from 32 in advance
        fs/buffer.c: fold init_buffer() into init_page_buffers()
        fs: fold __inode_permission() into inode_permission()
        fs: add RWF_APPEND
        sctp: use vmemdup_user() rather than badly open-coding memdup_user()
        snd_ctl_elem_init_enum_names(): switch to vmemdup_user()
        replace_user_tlv(): switch to vmemdup_user()
        new primitive: vmemdup_user()
        memdup_user(): switch to GFP_USER
        eventfd: fold eventfd_ctx_get() into eventfd_ctx_fileget()
        eventfd: fold eventfd_ctx_read() into eventfd_read()
        eventfd: convert to use anon_inode_getfd()
        nfs4file: get rid of pointless include of btrfs.h
        uvc_v4l2: clean copyin/copyout up
        vme_user: don't use __copy_..._user()
        usx2y: don't bother with memdup_user() for 16-byte structure
        ...
      19e7b5f9
    • Linus Torvalds's avatar
      Merge tag 'gfs2-4.16.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 26064ea4
      Linus Torvalds authored
      Pull GFS2 updates from Bob Peterson:
       "We've got 30 patches for this merge window. These generally fall into
        five categories:
      
         - code cleanups
      
         - patches related to adding PUNCH_HOLE support to GFS2
      
         - support for new fields in resource group headers
      
         - a few bug fixes
      
         - support for new fields in journal log headers. These new fields,
           which were previously unused, are designed to make it easier to
           track down file system corruption, and allow fsck.gfs2 to make more
           intelligent decisions when finding and fixing file system
           corruption.
      
        Details:
      
         - Two patches from Abhi Das, to trim the ordered writes list, which
           used to grow uncontrollably until unmount.
      
         - Several patches from Andreas Gruenbacher: remove an unused
           parameter from function gfs2_write_jdata_pagevec, remove a
           pointless BUG_ON, clean up an error patch in trunc_start, remove
           some unused parameters from truncate, make gfs2_journaled_truncate
           more efficient, clean up the support functions for truncate, fix
           metadata read-ahead for truncate to make it faster, fix up the
           non-recursive truncate code, rework and rename
           gfs2_block_truncate_page, generalize the non-recursive truncate
           code so it can take a range of values for punch_hole support,
           introduce new PUNCH_HOLE support that take advantage of the
           previous patches, add fallocate support with PUNCH_HOLE, fix some
           typos in the comments, add the function gfs2_max_stuffed_size to
           replace a piece of code that was needlessly repeated throughout
           GFS2, a minor cleanup to function gfs2_page_add_databufs, get rid
           of function gfs2_log_header_in in preparation for the new log
           header fields, and also fix up some missing newlines in kernel
           messages.
      
         - Andy Price added a new field to resource groups to indicate where
           the next one should be, to allow fsck.gfs2 to make better repairs.
           He also added new rindex fields for consistency checking, and added
           a crc field to resource group headers for consistency checking.
      
         - I reduced redundancy in functions common to freeing dinodes, and
           when writing log headers between the journalling code and journal
           recovery code. Also added new fields to journal log headers based
           on a prototype from Steve Whitehouse, and log the source of journal
           log headers so we can better track down journal corruption. Minor
           comment typo fix and a fix for a BUG in an unlink error path.
      
         - Steve Whitehouse contributed a patch to fix an incorrect use of the
           gfs2_blk2rgrpd function.
      
         - Tetsuo Handa contributed a patch that fixes incorrect error
           handling in function init_gfs2_fs"
      
      * tag 'gfs2-4.16.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: (30 commits)
        gfs2: Add a few missing newlines in messages
        gfs2: Remove inode from ordered write list in gfs2_write_inode()
        GFS2: Don't try to end a non-existent transaction in unlink
        GFS2: Fix minor comment typo
        GFS2: Log the reason for log flushes in every log header
        GFS2: Introduce new gfs2_log_header_v2
        gfs2: Get rid of gfs2_log_header_in
        gfs2: Minor gfs2_page_add_databufs cleanup
        gfs2: Add gfs2_max_stuffed_size
        gfs2: Typo fixes
        gfs2: Implement fallocate(FALLOC_FL_PUNCH_HOLE)
        gfs2: Turn trunc_dealloc into punch_hole
        gfs2: Generalize truncate code
        Turn gfs2_block_truncate_page into gfs2_block_zero_range
        gfs2: Improve non-recursive delete algorithm
        gfs2: Fix metadata read-ahead during truncate
        gfs2: Clean up {lookup,fillup}_metapath
        gfs2: Remove minor gfs2_journaled_truncate inefficiencies
        gfs2: truncate: Remove unnecessary oldsize parameters
        gfs2: Clean up trunc_start error path
        ...
      26064ea4
    • 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
    • John Pittman's avatar
      dm cache: Documentation: update default migration_throttling value · 9614e2ba
      John Pittman authored
      In commit f8350daf ("dm cache: tune migration throttling") the
      value for DEFAULT_MIGRATION_THRESHOLD was decreased from 204800 to
      2048.  Edit device-mapper/cache.txt to reflect the correct default
      value for migration_threshold.
      Signed-off-by: default avatarJohn Pittman <jpittman@redhat.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      9614e2ba
    • 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
    • Andreas Gruenbacher's avatar
      gfs2: Add a few missing newlines in messages · af38816e
      Andreas Gruenbacher authored
      Some of the info, warning, and error messages are missing their trailing
      newline.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      af38816e
    • Abhi Das's avatar
      gfs2: Remove inode from ordered write list in gfs2_write_inode() · 957a7acd
      Abhi Das authored
      The vfs clears the I_DIRTY inode flag before calling gfs2_write_inode()
      having queued any data that needed to be written to disk.
      This is a good time to remove such inodes from our ordered write list
      so they don't hang around for long periods of time.
      Signed-off-by: default avatarAbhi Das <adas@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      957a7acd
    • 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