1. 05 4月, 2018 11 次提交
    • L
      Merge tag 'riscv-for-linus-4.17-mw0' of... · 527cd207
      Linus Torvalds 提交于
      Merge tag 'riscv-for-linus-4.17-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux
      
      Pull RISC-V updates from Palmer Dabbelt:
       "This contains the new features we'd like to incorporate into the
        RISC-V port for 4.17. We might have a bit more stuff land later in the
        merge window, but I wanted to get this out earlier just so everyone
        can see where we currently stand.
      
        A short summary of the changes is:
      
         - We've added support for dynamic ftrace on RISC-V targets.
      
         - There have been a handful of cleanups to our atomic and locking
           routines. They now more closely match the released RISC-V memory
           model draft.
      
         - Our module loading support has been cleaned up and is now enabled
           by default, despite some limitations still existing.
      
         - A patch to define COMMANDLINE_FORCE instead of COMMANDLINE_OVERRIDE
           so the generic device tree code picks up handling all our command
           line stuff.
      
        There's more information in the merge commits for each patch set"
      
      * tag 'riscv-for-linus-4.17-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux: (21 commits)
        RISC-V: Rename CONFIG_CMDLINE_OVERRIDE to CONFIG_CMDLINE_FORCE
        RISC-V: Add definition of relocation types
        RISC-V: Enable module support in defconfig
        RISC-V: Support SUB32 relocation type in kernel module
        RISC-V: Support ADD32 relocation type in kernel module
        RISC-V: Support ALIGN relocation type in kernel module
        RISC-V: Support RVC_BRANCH/JUMP relocation type in kernel modulewq
        RISC-V: Support HI20/LO12_I/LO12_S relocation type in kernel module
        RISC-V: Support CALL relocation type in kernel module
        RISC-V: Support GOT_HI20/CALL_PLT relocation type in kernel module
        RISC-V: Add section of GOT.PLT for kernel module
        RISC-V: Add sections of PLT and GOT for kernel module
        riscv/atomic: Strengthen implementations with fences
        riscv/spinlock: Strengthen implementations with fences
        riscv/barrier: Define __smp_{store_release,load_acquire}
        riscv/ftrace: Add HAVE_FUNCTION_GRAPH_RET_ADDR_PTR support
        riscv/ftrace: Add DYNAMIC_FTRACE_WITH_REGS support
        riscv/ftrace: Add ARCH_SUPPORTS_FTRACE_OPS support
        riscv/ftrace: Add dynamic function graph tracer support
        riscv/ftrace: Add dynamic function tracer support
        ...
      527cd207
    • L
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 23221d99
      Linus Torvalds 提交于
      Pull arm64 updates from Will Deacon:
       "Nothing particularly stands out here, probably because people were
        tied up with spectre/meltdown stuff last time around. Still, the main
        pieces are:
      
         - Rework of our CPU features framework so that we can whitelist CPUs
           that don't require kpti even in a heterogeneous system
      
         - Support for the IDC/DIC architecture extensions, which allow us to
           elide instruction and data cache maintenance when writing out
           instructions
      
         - Removal of the large memory model which resulted in suboptimal
           codegen by the compiler and increased the use of literal pools,
           which could potentially be used as ROP gadgets since they are
           mapped as executable
      
         - Rework of forced signal delivery so that the siginfo_t is
           well-formed and handling of show_unhandled_signals is consolidated
           and made consistent between different fault types
      
         - More siginfo cleanup based on the initial patches from Eric
           Biederman
      
         - Workaround for Cortex-A55 erratum #1024718
      
         - Some small ACPI IORT updates and cleanups from Lorenzo Pieralisi
      
         - Misc cleanups and non-critical fixes"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (70 commits)
        arm64: uaccess: Fix omissions from usercopy whitelist
        arm64: fpsimd: Split cpu field out from struct fpsimd_state
        arm64: tlbflush: avoid writing RES0 bits
        arm64: cmpxchg: Include linux/compiler.h in asm/cmpxchg.h
        arm64: move percpu cmpxchg implementation from cmpxchg.h to percpu.h
        arm64: cmpxchg: Include build_bug.h instead of bug.h for BUILD_BUG
        arm64: lse: Include compiler_types.h and export.h for out-of-line LL/SC
        arm64: fpsimd: include <linux/init.h> in fpsimd.h
        drivers/perf: arm_pmu_platform: do not warn about affinity on uniprocessor
        perf: arm_spe: include linux/vmalloc.h for vmap()
        Revert "arm64: Revert L1_CACHE_SHIFT back to 6 (64-byte cache line size)"
        arm64: cpufeature: Avoid warnings due to unused symbols
        arm64: Add work around for Arm Cortex-A55 Erratum 1024718
        arm64: Delay enabling hardware DBM feature
        arm64: Add MIDR encoding for Arm Cortex-A55 and Cortex-A35
        arm64: capabilities: Handle shared entries
        arm64: capabilities: Add support for checks based on a list of MIDRs
        arm64: Add helpers for checking CPU MIDR against a range
        arm64: capabilities: Clean up midr range helpers
        arm64: capabilities: Change scope of VHE to Boot CPU feature
        ...
      23221d99
    • L
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5b1f3dc9
      Linus Torvalds 提交于
      Pull irq updates from Thomas Gleixner:
       "The usual pile of boring changes:
      
         - Consolidate tasklet functions to share code instead of duplicating
           it
      
         - The first step for making the low level entry handler management on
           multi-platform kernels generic
      
         - A new sysfs file which allows to retrieve the wakeup state of
           interrupts.
      
         - Ensure that the interrupt thread follows the effective affinity and
           not the programmed affinity to avoid cross core wakeups.
      
         - Two new interrupt controller drivers (Microsemi Ocelot and Qualcomm
           PDC)
      
         - Fix the wakeup path clock handling for Reneasas interrupt chips.
      
         - Rework the boot time register reset for ARM GIC-V2/3
      
         - Better suspend/resume support for ARM GIV-V3/ITS
      
         - Add missing locking to the ARM GIC set_type() callback
      
         - Small fixes for the irq simulator code
      
         - SPDX identifiers for the irq core code and removal of boiler plate
      
         - Small cleanups all over the place"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
        openrisc: Set CONFIG_MULTI_IRQ_HANDLER
        arm64: Set CONFIG_MULTI_IRQ_HANDLER
        genirq: Make GENERIC_IRQ_MULTI_HANDLER depend on !MULTI_IRQ_HANDLER
        irqchip/gic: Take lock when updating irq type
        irqchip/gic: Update supports_deactivate static key to modern api
        irqchip/gic-v3: Ensure GICR_CTLR.EnableLPI=0 is observed before enabling
        irqchip: Add a driver for the Microsemi Ocelot controller
        dt-bindings: interrupt-controller: Add binding for the Microsemi Ocelot interrupt controller
        irqchip/gic-v3: Probe for SCR_EL3 being clear before resetting AP0Rn
        irqchip/gic-v3: Don't try to reset AP0Rn
        irqchip/gic-v3: Do not check trigger configuration of partitionned LPIs
        genirq: Remove license boilerplate/references
        genirq: Add missing SPDX identifiers
        genirq/matrix: Cleanup SPDX identifier
        genirq: Cleanup top of file comments
        genirq: Pass desc to __irq_free instead of irq number
        irqchip/gic-v3: Loudly complain about the use of IRQ_TYPE_NONE
        irqchip/gic: Loudly complain about the use of IRQ_TYPE_NONE
        RISC-V: Move to the new GENERIC_IRQ_MULTI_HANDLER handler
        genirq: Add CONFIG_GENERIC_IRQ_MULTI_HANDLER
        ...
      5b1f3dc9
    • L
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 680014d6
      Linus Torvalds 提交于
      Pull time(r) updates from Thomas Gleixner:
       "A small set of updates for timers and timekeeping:
      
         - The most interesting change is the consolidation of clock MONOTONIC
           and clock BOOTTIME.
      
           Clock MONOTONIC behaves now exactly like clock BOOTTIME and does
           not longer ignore the time spent in suspend. A new clock
           MONOTONIC_ACTIVE is provived which behaves like clock MONOTONIC in
           kernels before this change. This allows applications to
           programmatically check for the clock MONOTONIC behaviour.
      
           As discussed in the review thread, this has the potential of
           breaking user space and we might have to revert this. Knock on wood
           that we can avoid that exercise.
      
         - Updates to the NTP mechanism to improve accuracy
      
         - A new kernel internal data structure to aid the ongoing Y2038 work.
      
         - Cleanups and simplifications of the clocksource code.
      
         - Make the alarmtimer code play nicely with debugobjects"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        alarmtimer: Init nanosleep alarm timer on stack
        y2038: Introduce struct __kernel_old_timeval
        tracing: Unify the "boot" and "mono" tracing clocks
        hrtimer: Unify MONOTONIC and BOOTTIME clock behavior
        posix-timers: Unify MONOTONIC and BOOTTIME clock behavior
        timekeeping: Remove boot time specific code
        Input: Evdev - unify MONOTONIC and BOOTTIME clock behavior
        timekeeping: Make the MONOTONIC clock behave like the BOOTTIME clock
        timekeeping: Add the new CLOCK_MONOTONIC_ACTIVE clock
        timekeeping/ntp: Determine the multiplier directly from NTP tick length
        timekeeping/ntp: Don't align NTP frequency adjustments to ticks
        clocksource: Use ATTRIBUTE_GROUPS
        clocksource: Use DEVICE_ATTR_RW/RO/WO to define device attributes
        clocksource: Don't walk the clocksource list for empty override
      680014d6
    • L
      Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · 0c21fd6e
      Linus Torvalds 提交于
      Pull /dev/random updates from Ted Ts'o:
       "A few random (cough, cough) cleanups for the /dev/random driver"
      
      * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
        drivers/char/random.c: remove unused dont_count_entropy
        random: optimize add_interrupt_randomness
        random: always fill buffer in get_random_bytes_wait
        random: use a tighter cap in credit_entropy_bits_safe()
      0c21fd6e
    • L
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 3e968c9f
      Linus Torvalds 提交于
      Pull ext4 updates from Ted Ts'o:
       "Cleanups and bugfixes for ext4, including some fixes to make ext4 more
        robust against maliciously crafted file system images.
      
        (I still don't recommend that container folks hold any delusions that
        mounting arbitary images that can be crafted by malicious attackers
        should be considered sane thing to do, though!)"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (29 commits)
        ext4: force revalidation of directory pointer after seekdir(2)
        ext4: add extra checks to ext4_xattr_block_get()
        ext4: add bounds checking to ext4_xattr_find_entry()
        ext4: move call to ext4_error() into ext4_xattr_check_block()
        ext4: don't show data=<mode> option if defaulted
        ext4: omit init_itable=n in procfs when disabled
        ext4: show more binary mount options in procfs
        ext4: simplify kobject usage
        ext4: remove unused parameters in sysfs code
        ext4: null out kobject* during sysfs cleanup
        ext4: don't allow r/w mounts if metadata blocks overlap the superblock
        ext4: always initialize the crc32c checksum driver
        ext4: fail ext4_iget for root directory if unallocated
        ext4: limit xattr size to INT_MAX
        ext4: add validity checks for bitmap block numbers
        ext4: fix comments in ext4_swap_extents()
        ext4: use generic_writepages instead of __writepage/write_cache_pages
        ext4: don't complain about incorrect features when probing
        ext4: remove EXT4_STATE_DIOREAD_LOCK flag
        ext4: fix offset overflow on 32-bit archs in ext4_iomap_begin()
        ...
      3e968c9f
    • L
      Merge tag '4.17-SMB3-Fixes' of git://git.samba.org/sfrench/cifs-2.6 · a8f8e8ac
      Linus Torvalds 提交于
      Pull cifs updates from Steve French:
       "Includes SMB3.11 security improvements, as well as various fixes for
        stable and some debugging improvements"
      
      * tag '4.17-SMB3-Fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Add minor debug message during negprot
        smb3: Fix root directory when server returns inode number of zero
        cifs: fix sparse warning on previous patch in a few printks
        cifs: add server->vals->header_preamble_size
        cifs: smbd: disconnect transport on RDMA errors
        cifs: smbd: avoid reconnect lockup
        Don't log confusing message on reconnect by default
        Don't log expected error on DFS referral request
        fs: cifs: Replace _free_xid call in cifs_root_iget function
        SMB3.1.1 dialect is no longer experimental
        Tree connect for SMB3.1.1 must be signed for non-encrypted shares
        fix smb3-encryption breakage when CONFIG_DEBUG_SG=y
        CIFS: fix sha512 check in cifs_crypto_secmech_release
        CIFS: implement v3.11 preauth integrity
        CIFS: add sha512 secmech
        CIFS: refactor crypto shash/sdesc allocation&free
        Update README file for cifs.ko
        Update TODO list for cifs.ko
        cifs: fix memory leak in SMB2_open()
        CIFS: SMBD: fix spelling mistake: "faield" and "legnth"
      a8f8e8ac
    • L
      Merge tag 'gfs2-4.17.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 2bd99df5
      Linus Torvalds 提交于
      Pull gfs2 updates from Bob Peterson:
       "We've only got nine GFS2 patches for this merge window:
      
         - report journal recovery times more accurately during journal replay
           (Abhi Das)
      
         - fix fallocate chunk size (Andreas Gruenbacher)
      
         - correctly dirty inodes during rename (Andreas Gruenbacher)
      
         - improve the comment for function gfs2_block_map (Andreas
           Gruenbacher)
      
         - improve kernel trace point iomap end: The physical block address
           was added (Andreas Gruenbacher)
      
         - fix a nasty file system corruption bug that surfaced in xfstests
           476 in punch-hole/truncate (Andreas Gruenbacher)
      
         - fix a problem Christoph Helwig pointed out, namely, that GFS2 was
           misusing the IOMAP_ZERO flag. The zeroing of new blocks was moved
           to the proper fallocate code (Andreas Gruenbacher)
      
         - declare function gfs2_remove_from_ail as static (Bob Peterson)
      
         - only set PageChecked for jdata page writes (Bob Peterson)"
      
      * tag 'gfs2-4.17.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: time journal recovery steps accurately
        gfs2: Zero out fallocated blocks in fallocate_chunk
        gfs2: Check for the end of metadata in punch_hole
        gfs2: gfs2_iomap_end tracepoint: log block address
        gfs2: Improve gfs2_block_map comment
        GFS2: Only set PageChecked for jdata pages
        GFS2: Make function gfs2_remove_from_ail static
        gfs2: Dirty source inode during rename
        gfs2: Fix fallocate chunk size
      2bd99df5
    • L
      Merge tag 'for-4.17-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 94514bbe
      Linus Torvalds 提交于
      Pull btrfs updates from David Sterba:
       "There are a several user visible changes, the rest is mostly invisible
        and continues to clean up the whole code base.
      
        User visible changes:
         - new mount option nossd_spread (pair for ssd_spread)
      
         - mount option subvolid will detect junk after the number and fail
           the mount
      
         - add message after cancelled device replace
      
         - direct module dependency on libcrc32, removed own crc wrappers
      
         - removed user space transaction ioctls
      
         - use lighter locking when reading /proc/self/mounts, RCU instead of
           mutex to avoid unnecessary contention
      
        Enhancements:
         - skip writeback of last page when truncating file to same size
      
         - send: do not issue unnecessary truncate operations
      
         - mount option token specifiers: use %u for unsigned values, more
           validation
      
         - selftests: more tree block validations
      
        qgroups:
         - preparatory work for splitting reservation types for data and
           metadata, this should allow for more accurate tracking and fix some
           issues with underflows or do further enhancements
      
         - split metadata reservations for started and joined transaction so
           they do not get mixed up and are accounted correctly at commit time
      
         - with the above, it's possible to revert patch that potentially
           deadlocks when trying to make more space by explicitly committing
           when the quota limit is hit
      
         - fix root item corruption when multiple same source snapshots are
           created with quota enabled
      
        RAID56:
         - make sure target is identical to source when raid56 rebuild fails
           after dev-replace
      
         - faster rebuild during scrub, batch by stripes and not
           block-by-block
      
         - make more use of cached data when rebuilding from a missing device
      
        Fixes:
         - null pointer deref when device replace target is missing
      
         - fix fsync after hole punching when using no-holes feature
      
         - fix lockdep splat when allocating percpu data with wrong GFP flags
      
        Cleanups, refactoring, core changes:
         - drop redunant parameters from various functions
      
         - kill and opencode trivial helpers
      
         - __cold/__exit function annotations
      
         - dead code removal
      
         - continued audit and documentation of memory barriers
      
         - error handling: handle removal from uuid tree
      
         - error handling: remove handling of impossible condtitons
      
         - more debugging or error messages
      
         - updated tracepoints
      
         - one VLA use removal (and one still left)"
      
      * tag 'for-4.17-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (164 commits)
        btrfs: lift errors from add_extent_changeset to the callers
        Btrfs: print error messages when failing to read trees
        btrfs: user proper type for btrfs_mask_flags flags
        btrfs: split dev-replace locking helpers for read and write
        btrfs: remove stale comments about fs_mutex
        btrfs: use RCU in btrfs_show_devname for device list traversal
        btrfs: update barrier in should_cow_block
        btrfs: use lockdep_assert_held for mutexes
        btrfs: use lockdep_assert_held for spinlocks
        btrfs: Validate child tree block's level and first key
        btrfs: tests/qgroup: Fix wrong tree backref level
        Btrfs: fix copy_items() return value when logging an inode
        Btrfs: fix fsync after hole punching when using no-holes feature
        btrfs: use helper to set ulist aux from a qgroup
        Revert "btrfs: qgroups: Retry after commit on getting EDQUOT"
        btrfs: qgroup: Update trace events for metadata reservation
        btrfs: qgroup: Use root::qgroup_meta_rsv_* to record qgroup meta reserved space
        btrfs: delayed-inode: Use new qgroup meta rsv for delayed inode and item
        btrfs: qgroup: Use separate meta reservation type for delalloc
        btrfs: qgroup: Introduce function to convert META_PREALLOC into META_PERTRANS
        ...
      94514bbe
    • L
      Merge tag 'xfs-4.17-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 547c43d7
      Linus Torvalds 提交于
      Pull xfs updates from Darrick Wong:
       "Here's the first round of fixes for XFS for 4.17.
      
        The biggest new features this time around are the addition of lazytime
        support, further enhancement of the on-disk inode metadata verifiers,
        and a patch to smooth over some of the AGFL padding problems that have
        intermittently plagued users since 4.5. I forsee sending a second pull
        request next week with further bug fixes and speedups in the online
        scrub code and elsewhere.
      
        This series 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.
      
        Summary of changes for this release:
      
         - Various cleanups and code fixes
      
         - Implement lazytime as a mount option
      
         - Convert various on-disk metadata checks from asserts to -EFSCORRUPTED
      
         - Fix accounting problems with the rmap per-ag reservations
      
         - Refactorings and cleanups for xfs_log_force
      
         - Various bugfixes for the reflink code
      
         - Work around v5 AGFL padding problems to prevent fs shutdowns
      
         - Establish inode fork verifiers to inspect on-disk metadata
           correctness
      
         - Various online scrub fixes
      
         - Fix v5 swapext blowing up on deleted inodes"
      
      * tag 'xfs-4.17-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (49 commits)
        xfs: do not log/recover swapext extent owner changes for deleted inodes
        xfs: clean up xfs_mount allocation and dynamic initializers
        xfs: remove dead inode version setting code
        xfs: catch inode allocation state mismatch corruption
        xfs: xfs_scrub_iallocbt_xref_rmap_inodes should use xref_set_corrupt
        xfs: flag inode corruption if parent ptr doesn't get us a real inode
        xfs: don't accept inode buffers with suspicious unlinked chains
        xfs: move inode extent size hint validation to libxfs
        xfs: record inode buf errors as a xref error in inobt scrubber
        xfs: remove xfs_buf parameter from inode scrub methods
        xfs: inode scrubber shouldn't bother with raw checks
        xfs: bmap scrubber should do rmap xref with bmap for sparse files
        xfs: refactor inode buffer verifier error logging
        xfs: refactor inode verifier error logging
        xfs: refactor bmap record validation
        xfs: sanity-check the unused space before trying to use it
        xfs: detect agfl count corruption and reset agfl
        xfs: unwind the try_again loop in xfs_log_force
        xfs: refactor xfs_log_force_lsn
        xfs: minor cleanup for xfs_reflink_end_cow
        ...
      547c43d7
    • L
      Merge branch 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 2e08edc5
      Linus Torvalds 提交于
      Pull vfs dcache updates from Al Viro:
       "Part of this is what the trylock loop elimination series has turned
        into, part making d_move() preserve the parent (and thus the path) of
        victim, plus some general cleanups"
      
      * 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (22 commits)
        d_genocide: move export to definition
        fold dentry_lock_for_move() into its sole caller and clean it up
        make non-exchanging __d_move() copy ->d_parent rather than swap them
        oprofilefs: don't oops on allocation failure
        lustre: get rid of pointless casts to struct dentry *
        debugfs_lookup(): switch to lookup_one_len_unlocked()
        fold lookup_real() into __lookup_hash()
        take out orphan externs (empty_string/slash_string)
        split d_path() and friends into a separate file
        dcache.c: trim includes
        fs/dcache: Avoid a try_lock loop in shrink_dentry_list()
        get rid of trylock loop around dentry_kill()
        handle move to LRU in retain_dentry()
        dput(): consolidate the "do we need to retain it?" into an inlined helper
        split the slow part of lock_parent() off
        now lock_parent() can't run into killed dentry
        get rid of trylock loop in locking dentries on shrink list
        d_delete(): get rid of trylock loop
        fs/dcache: Move dentry_kill() below lock_parent()
        fs/dcache: Remove stale comment from dentry_kill()
        ...
      2e08edc5
  2. 04 4月, 2018 26 次提交
    • P
      openrisc: Set CONFIG_MULTI_IRQ_HANDLER · 83fbdf1c
      Palmer Dabbelt 提交于
      arm has an optional MULTI_IRQ_HANDLER, which openrisc copied but didn't
      make optional.  The multi irq handler infrastructure has been copied to
      generic code selectable with a new config symbol. That symbol can be
      selected by randconfig builds and can cause build breakage.
      
      Introduce CONFIG_MULTI_IRQ_HANDLER as an intermediate step which prevents
      the core config symbol from being selected. The openrisc local config
      symbol will be removed once openrisc gets converted to the generic code.
      Signed-off-by: NPalmer Dabbelt <palmer@sifive.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Link: https://lkml.kernel.org/r/20180404043130.31277-3-palmer@sifive.com
      83fbdf1c
    • P
      arm64: Set CONFIG_MULTI_IRQ_HANDLER · 667b24d0
      Palmer Dabbelt 提交于
      arm has an optional MULTI_IRQ_HANDLER, which arm64 copied but didn't make
      optional.  The multi irq handler infrastructure has been copied to generic
      code selectable with a new config symbol. That symbol can be selected by
      randconfig builds and can cause build breakage.
      
      Introduce CONFIG_MULTI_IRQ_HANDLER as an intermediate step which prevents
      the core config symbol from being selected. The arm64 local config symbol
      will be removed once arm64 gets converted to the generic code.
      Signed-off-by: NPalmer Dabbelt <palmer@sifive.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Link: https://lkml.kernel.org/r/20180404043130.31277-2-palmer@sifive.com
      667b24d0
    • P
      genirq: Make GENERIC_IRQ_MULTI_HANDLER depend on !MULTI_IRQ_HANDLER · d6f73825
      Palmer Dabbelt 提交于
      These config switches enable the same code in the core and the not yet
      converted architecture code. They can be selected both by randconfig builds
      and cause linker error because the same symbols are defined twice.
      
      Make the new GENERIC_IRQ_MULTI_HANDLER depend on !MULTI_IRQ_HANDLER to
      prevent that. The dependency will be removed once all architectures are
      converted over.
      Signed-off-by: NPalmer Dabbelt <palmer@sifive.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Link: https://lkml.kernel.org/r/20180404043130.31277-4-palmer@sifive.com
      d6f73825
    • A
      Merge branch 'old.dcache' into work.dcache · 04bbc979
      Al Viro 提交于
      04bbc979
    • L
      Merge branch 'userns-linus' of... · 17dec0a9
      Linus Torvalds 提交于
      Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull namespace updates from Eric Biederman:
       "There was a lot of work this cycle fixing bugs that were discovered
        after the merge window and getting everything ready where we can
        reasonably support fully unprivileged fuse. The bug fixes you already
        have and much of the unprivileged fuse work is coming in via other
        trees.
      
        Still left for fully unprivileged fuse is figuring out how to cleanly
        handle .set_acl and .get_acl in the legacy case, and properly handling
        of evm xattrs on unprivileged mounts.
      
        Included in the tree is a cleanup from Alexely that replaced a linked
        list with a statically allocated fix sized array for the pid caches,
        which simplifies and speeds things up.
      
        Then there is are some cleanups and fixes for the ipc namespace. The
        motivation was that in reviewing other code it was discovered that
        access ipc objects from different pid namespaces recorded pids in such
        a way that when asked the wrong pids were returned. In the worst case
        there has been a measured 30% performance impact for sysvipc
        semaphores. Other test cases showed no measurable performance impact.
        Manfred Spraul and Davidlohr Bueso who tend to work on sysvipc
        performance both gave the nod that this is good enough.
      
        Casey Schaufler and James Morris have given their approval to the LSM
        side of the changes.
      
        I simplified the types and the code dealing with sysvipc to pass just
        kern_ipc_perm for all three types of ipc. Which reduced the header
        dependencies throughout the kernel and simplified the lsm code.
      
        Which let me work on the pid fixes without having to worry about
        trivial changes causing complete kernel recompiles"
      
      * 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        ipc/shm: Fix pid freeing.
        ipc/shm: fix up for struct file no longer being available in shm.h
        ipc/smack: Tidy up from the change in type of the ipc security hooks
        ipc: Directly call the security hook in ipc_ops.associate
        ipc/sem: Fix semctl(..., GETPID, ...) between pid namespaces
        ipc/msg: Fix msgctl(..., IPC_STAT, ...) between pid namespaces
        ipc/shm: Fix shmctl(..., IPC_STAT, ...) between pid namespaces.
        ipc/util: Helpers for making the sysvipc operations pid namespace aware
        ipc: Move IPCMNI from include/ipc.h into ipc/util.h
        msg: Move struct msg_queue into ipc/msg.c
        shm: Move struct shmid_kernel into ipc/shm.c
        sem: Move struct sem and struct sem_array into ipc/sem.c
        msg/security: Pass kern_ipc_perm not msg_queue into the msg_queue security hooks
        shm/security: Pass kern_ipc_perm not shmid_kernel into the shm security hooks
        sem/security: Pass kern_ipc_perm not sem_array into the sem security hooks
        pidns: simpler allocation of pid_* caches
      17dec0a9
    • L
      Merge branch 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · d92cd810
      Linus Torvalds 提交于
      Pull workqueue updates from Tejun Heo:
       "rcu_work addition and a couple trivial changes"
      
      * 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: remove the comment about the old manager_arb mutex
        workqueue: fix the comments of nr_idle
        fs/aio: Use rcu_work instead of explicit rcu and work item
        cgroup: Use rcu_work instead of explicit rcu and work item
        RCU, workqueue: Implement rcu_work
      d92cd810
    • L
      Merge branch 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · a23867f1
      Linus Torvalds 提交于
      Pull libata updates from Tejun Heo:
       "Nothing too interesting.
      
        The biggest change is refcnting fix for ata_host - the bug is recent
        and can only be triggered on controller hotplug, so very few are
        hitting it.
      
        There also are a number of trivial license / error message changes and
        some hardware specific changes"
      
      * 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (23 commits)
        ahci: imx: add the imx8qm ahci sata support
        libata: ensure host is free'd on error exit paths
        ata: ahci-platform: add reset control support
        ahci: imx: fix the build warning
        ata: add Amiga Gayle PATA controller driver
        ahci: imx: add the imx6qp ahci sata support
        ata: change Tegra124 to Tegra
        ata: ahci_tegra: Add AHCI support for Tegra210
        ata: ahci_tegra: disable DIPM
        ata: ahci_tegra: disable devslp for Tegra124
        ata: ahci_tegra: initialize regulators from soc struct
        ata: ahci_tegra: Update initialization sequence
        dt-bindings: Tegra210: add binding documentation
        libata: add refcounting to ata_host
        pata_bk3710: clarify license version and use SPDX header
        pata_falcon: clarify license version and use SPDX header
        pata_it821x: Delete an error message for a failed memory allocation in it821x_firmware_command()
        pata_macio: Delete an error message for a failed memory allocation in two functions
        pata_mpc52xx: Delete an error message for a failed memory allocation in mpc52xx_ata_probe()
        sata_dwc_460ex: Delete an error message for a failed memory allocation in sata_dwc_port_start()
        ...
      a23867f1
    • L
      Merge tag 'media/v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · ef1c4a6f
      Linus Torvalds 提交于
      Pull media updates from Mauro Carvalho Chehab:
      
       - new CEC pin injection code for testing purposes
      
       - DVB frontend cxd2099 promoted from staging
      
       - new platform driver for Sony cxd2880 DVB devices
      
       - new sensor drivers: mt9t112, ov2685, ov5695, ov772x, tda1997x,
         tw9910.c
      
       - removal of unused cx18 and ivtv alsa mixers
      
       - the reneseas-ceu driver doesn't depend on soc_camera anymore and
         moved from staging
      
       - removed the mantis_vp3028 driver, unused since 2009
      
       - s5p-mfc: add support for version 10 of the MSP
      
       - added a decoder for imon protocol
      
       - atomisp: lots of cleanups
      
       - imx074 and mt9t031: don't depend on soc_camera anymore, being
         promoted from staging
      
       - added helper functions to better support DVB I2C binding
      
       - lots of driver improvements and cleanups
      
      * tag 'media/v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (438 commits)
        media: v4l2-ioctl: rename a temp var that stores _IOC_SIZE(cmd)
        media: fimc-capture: get rid of two warnings
        media: dvb-usb-v2: fix a missing dependency of I2C_MUX
        media: uvc: to the right check at uvc_ioctl_enum_framesizes()
        media: cec-core: fix a bug at cec_error_inj_write()
        media: tda9840: cleanup a warning
        media: tm6000:  avoid casting just to print pointer address
        media: em28xx-input: improve error handling code
        media: zr364xx: avoid casting just to print pointer address
        media: vivid-radio-rx: add a cast to avoid a warning
        media: saa7134-alsa: don't use casts to print a buffer address
        media: solo6x10: get rid of an address space warning
        media: zoran: don't cast pointers to print them
        media: ir-kbd-i2c: change the if logic to avoid a warning
        media: ir-kbd-i2c: improve error handling code
        media: saa7134-input: improve error handling
        media: s2255drv: fix a casting warning
        media: ivtvfb: Cleanup some warnings
        media: videobuf-dma-sg: Fix a weird cast
        soc_camera: fix a weird cast on printk
        ...
      ef1c4a6f
    • L
      Merge tag 'kconfig-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 147a89bc
      Linus Torvalds 提交于
      Pull Kconfig updates from Masahiro Yamada:
      
       - improve checkpatch for more precise Kconfig code checking
      
       - clarify effective selects by grouping reverse dependencies in help
      
       - do not write out '# CONFIG_FOO is not set' from invisible symbols
      
       - make oldconfig as silent as it should be
      
       - rename 'silentoldconfig' to 'syncconfig'
      
       - add unit-test framework and several test cases
      
       - warn unmet dependency of tristate symbols
      
       - make unmet dependency warnings readable, removing false positives
      
       - improve recursive include detection
      
       - use yylineno to simplify the line number tracking
      
       - misc cleanups
      
      * tag 'kconfig-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
        kconfig: use yylineno option instead of manual lineno increments
        kconfig: detect recursive inclusion earlier
        kconfig: remove duplicated file name and lineno of recursive inclusion
        kconfig: do not include both curses.h and ncurses.h for nconfig
        kconfig: make unmet dependency warnings readable
        kconfig: warn unmet direct dependency of tristate symbols selected by y
        kconfig: tests: test if recursive inclusion is detected
        kconfig: tests: test if recursive dependencies are detected
        kconfig: tests: test randconfig for choice in choice
        kconfig: tests: test defconfig when two choices interact
        kconfig: tests: check visibility of tristate choice values in y choice
        kconfig: tests: check unneeded "is not set" with unmet dependency
        kconfig: tests: test if new symbols in choice are asked
        kconfig: tests: test automatic submenu creation
        kconfig: tests: add basic choice tests
        kconfig: tests: add framework for Kconfig unit testing
        kbuild: add PYTHON2 and PYTHON3 variables
        kconfig: remove redundant streamline_config.pl prerequisite
        kconfig: rename silentoldconfig to syncconfig
        kconfig: invoke oldconfig instead of silentoldconfig from local*config
        ...
      147a89bc
    • L
      Merge tag 'kbuild-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 3b24b837
      Linus Torvalds 提交于
      Pull Kbuild updates from Masahiro Yamada:
      
       - add a shell script to get Clang version
      
       - improve portability of build scripts
      
       - drop always-enabled CONFIG_THIN_ARCHIVE and remove unused code
      
       - rename built-in.o which is now thin archive to built-in.a
      
       - process clean/build targets one by one to get along with -j option
      
       - simplify ld-option
      
       - improve building with CONFIG_TRIM_UNUSED_KSYMS
      
       - define KBUILD_MODNAME even for objects shared among multiple modules
      
       - avoid linking multiple instances of same objects from composite
         objects
      
       - move <linux/compiler_types.h> to c_flags to include it only for C
         files
      
       - clean-up various Makefiles
      
      * tag 'kbuild-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (29 commits)
        kbuild: get <linux/compiler_types.h> out of <linux/kconfig.h>
        kbuild: clean up link rule of composite modules
        kbuild: clean up archive rule of built-in.a
        kbuild: remove partial section mismatch detection for built-in.a
        net: liquidio: clean up Makefile for simpler composite object handling
        lib: zstd: clean up Makefile for simpler composite object handling
        kbuild: link $(real-obj-y) instead of $(obj-y) into built-in.a
        kbuild: rename real-objs-y/m to real-obj-y/m
        kbuild: move modname and modname-multi close to modname_flags
        kbuild: simplify modname calculation
        kbuild: fix modname for composite modules
        kbuild: define KBUILD_MODNAME even if multiple modules share objects
        kbuild: remove unnecessary $(subst $(obj)/, , ...) in modname-multi
        kbuild: Use ls(1) instead of stat(1) to obtain file size
        kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS
        kbuild: move include/config/ksym/* to include/ksym/*
        kbuild: move CONFIG_TRIM_UNUSED_KSYMS code unneeded for external module
        kbuild: restore autoksyms.h touch to the top Makefile
        kbuild: move 'scripts' target below
        kbuild: remove wrong 'touch' in adjust_autoksyms.sh
        ...
      3b24b837
    • L
      Merge branch 'parisc-4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 0734e00e
      Linus Torvalds 提交于
      Pull parisc updates from Helge Deller:
       "Lots of small enhancements and fixes in this patchset:
      
         - improved the x86-64 compatibility for PCI cards by returning -1UL
           for timed out MMIO transactions (instead of crashing)
      
         - fixed HPMC handler for PAT machines: size needs to be multiple of 16
      
         - prepare machine_power_off() to be able to turn rp3410 and c8000
           machines off via IMPI
      
         - added code to extract machine info for usage with qemu
      
         - some init sections fixes
      
         - lots of fixes for sparse-, ubsan- and uninitalized variables
           warnings"
      
      * 'parisc-4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Fix out of array access in match_pci_device()
        parisc: Add code generator for Qemu/SeaBIOS machine info
        parisc/pci: Switch LBA PCI bus from Hard Fail to Soft Fail mode
        parisc: Fix HPMC handler by increasing size to multiple of 16 bytes
        parisc: Directly call machine_power_off() in power button driver
        parisc: machine_power_off() should call pm_power_off()
        parisc/Kconfig: SMP kernels boot on all machines
        parisc: Silence uninitialized variable warning in dbl_to_sgl_fcnvff()
        parisc: Move various functions and strings to init section
        parisc: Convert MAP_TYPE to cover 4 bits on parisc
        parisc: Force to various endian types for sparse
        parisc/gscps2: Fix sparse warnings
        parisc/led: Fix sparse warnings
        parisc/parport_gsc: Use NULL to avoid sparse warning
        parisc/stifb: Use fb_memset() to avoid sparse warning
      0734e00e
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next · 4608f064
      Linus Torvalds 提交于
      Pull sparc updates from David Miller:
      
       1) Add support for ADI (Application Data Integrity) found in more
          recent sparc64 cpus. Essentially this is keyed based access to
          virtual memory, and if the key encoded in the virual address is
          wrong you get a trap.
      
          The mm changes were reviewed by Andrew Morton and others.
      
          Work by Khalid Aziz.
      
       2) Validate DAX completion index range properly, from Rob Gardner.
      
       3) Add proper Kconfig deps for DAX driver. From Guenter Roeck.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next:
        sparc64: Make atomic_xchg() an inline function rather than a macro.
        sparc64: Properly range check DAX completion index
        sparc: Make auxiliary vectors for ADI available on 32-bit as well
        sparc64: Oracle DAX driver depends on SPARC64
        sparc64: Update signal delivery to use new helper functions
        sparc64: Add support for ADI (Application Data Integrity)
        mm: Allow arch code to override copy_highpage()
        mm: Clear arch specific VM flags on protection change
        mm: Add address parameter to arch_validate_prot()
        sparc64: Add auxiliary vectors to report platform ADI properties
        sparc64: Add handler for "Memory Corruption Detected" trap
        sparc64: Add HV fault type handlers for ADI related faults
        sparc64: Add support for ADI register fields, ASIs and traps
        mm, swap: Add infrastructure for saving page metadata on swap
        signals, sparc: Add signal codes for ADI violations
      4608f064
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 5bb053be
      Linus Torvalds 提交于
      Pull networking updates from David Miller:
      
       1) Support offloading wireless authentication to userspace via
          NL80211_CMD_EXTERNAL_AUTH, from Srinivas Dasari.
      
       2) A lot of work on network namespace setup/teardown from Kirill Tkhai.
          Setup and cleanup of namespaces now all run asynchronously and thus
          performance is significantly increased.
      
       3) Add rx/tx timestamping support to mv88e6xxx driver, from Brandon
          Streiff.
      
       4) Support zerocopy on RDS sockets, from Sowmini Varadhan.
      
       5) Use denser instruction encoding in x86 eBPF JIT, from Daniel
          Borkmann.
      
       6) Support hw offload of vlan filtering in mvpp2 dreiver, from Maxime
          Chevallier.
      
       7) Support grafting of child qdiscs in mlxsw driver, from Nogah
          Frankel.
      
       8) Add packet forwarding tests to selftests, from Ido Schimmel.
      
       9) Deal with sub-optimal GSO packets better in BBR congestion control,
          from Eric Dumazet.
      
      10) Support 5-tuple hashing in ipv6 multipath routing, from David Ahern.
      
      11) Add path MTU tests to selftests, from Stefano Brivio.
      
      12) Various bits of IPSEC offloading support for mlx5, from Aviad
          Yehezkel, Yossi Kuperman, and Saeed Mahameed.
      
      13) Support RSS spreading on ntuple filters in SFC driver, from Edward
          Cree.
      
      14) Lots of sockmap work from John Fastabend. Applications can use eBPF
          to filter sendmsg and sendpage operations.
      
      15) In-kernel receive TLS support, from Dave Watson.
      
      16) Add XDP support to ixgbevf, this is significant because it should
          allow optimized XDP usage in various cloud environments. From Tony
          Nguyen.
      
      17) Add new Intel E800 series "ice" ethernet driver, from Anirudh
          Venkataramanan et al.
      
      18) IP fragmentation match offload support in nfp driver, from Pieter
          Jansen van Vuuren.
      
      19) Support XDP redirect in i40e driver, from Björn Töpel.
      
      20) Add BPF_RAW_TRACEPOINT program type for accessing the arguments of
          tracepoints in their raw form, from Alexei Starovoitov.
      
      21) Lots of striding RQ improvements to mlx5 driver with many
          performance improvements, from Tariq Toukan.
      
      22) Use rhashtable for inet frag reassembly, from Eric Dumazet.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1678 commits)
        net: mvneta: improve suspend/resume
        net: mvneta: split rxq/txq init and txq deinit into SW and HW parts
        ipv6: frags: fix /proc/sys/net/ipv6/ip6frag_low_thresh
        net: bgmac: Fix endian access in bgmac_dma_tx_ring_free()
        net: bgmac: Correctly annotate register space
        route: check sysctl_fib_multipath_use_neigh earlier than hash
        fix typo in command value in drivers/net/phy/mdio-bitbang.
        sky2: Increase D3 delay to sky2 stops working after suspend
        net/mlx5e: Set EQE based as default TX interrupt moderation mode
        ibmvnic: Disable irqs before exiting reset from closed state
        net: sched: do not emit messages while holding spinlock
        vlan: also check phy_driver ts_info for vlan's real device
        Bluetooth: Mark expected switch fall-throughs
        Bluetooth: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for BTUSB_QCA_ROME
        Bluetooth: btrsi: remove unused including <linux/version.h>
        Bluetooth: hci_bcm: Remove DMI quirk for the MINIX Z83-4
        sh_eth: kill useless check in __sh_eth_get_regs()
        sh_eth: add sh_eth_cpu_data::no_xdfar flag
        ipv6: factorize sk_wmem_alloc updates done by __ip6_append_data()
        ipv4: factorize sk_wmem_alloc updates done by __ip_append_data()
        ...
      5bb053be
    • L
      Merge tag 'docs-4.17' of git://git.lwn.net/linux · bb2407a7
      Linus Torvalds 提交于
      Pull documentation updates from Jonathan Corbet:
       "There's been a fair amount of activity in Documentation/ this time
        around:
      
         - Lots of work aligning Documentation/ABI with reality, done by
           Aishwarya Pant.
      
         - The trace documentation has been converted to RST by Changbin Du
      
         - I thrashed up kernel-doc to deal with a parsing issue and to try to
           make the code more readable. It's still a 20+-year-old Perl hack,
           though.
      
         - Lots of other updates, typo fixes, and more"
      
      * tag 'docs-4.17' of git://git.lwn.net/linux: (82 commits)
        Documentation/process: update FUSE project website
        docs: kernel-doc: fix parsing of arrays
        dmaengine: Fix spelling for parenthesis in dmatest documentation
        dmaengine: Make dmatest.rst indeed reST compatible
        dmaengine: Add note to dmatest documentation about supported channels
        Documentation: magic-numbers: Fix typo
        Documentation: admin-guide: add kvmconfig, xenconfig and tinyconfig commands
        Input: alps - Update documentation for trackstick v3 format
        Documentation: Mention why %p prints ptrval
        COPYING: use the new text with points to the license files
        COPYING: create a new file with points to the Kernel license files
        Input: trackpoint: document sysfs interface
        xfs: Change URL for the project in xfs.txt
        char/bsr: add sysfs interface documentation
        acpi: nfit: document sysfs interface
        block: rbd: update sysfs interface
        Documentation/sparse: fix typo
        Documentation/CodingStyle: Add an example for braces
        docs/vm: update 00-INDEX
        kernel-doc: Remove __sched markings
        ...
      bb2407a7
    • L
      Merge tag 'leds_for_4.17-rc1' of... · e40dc662
      Linus Torvalds 提交于
      Merge tag 'leds_for_4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
      
      Pull LED updates from Jacek Anaszewski:
       "New LED class driver:
         - add driver for Mellanox regmap LEDs
      
        Improvement to ledtrig-disk:
         - extend disk trigger for reads and writes
      
        Improvements and fixes to existing LED class drivers:
         - add more product/board names for PC Engines APU2
         - fix wrong dmi_match on PC Engines APU LEDs
         - clarify chips supported by LM355x driver
         - fix Kconfig text for MLXCPLD, SYSCON, MC13783, NETXBIG
         - allow leds-mlxcpld compilation for 32 bit arch"
      
      * tag 'leds_for_4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: Fix wrong dmi_match on PC Engines APU LEDs
        leds: Extends disk trigger for reads and writes
        leds: Add more product/board names for PC Engines APU2
        leds: add driver for support Mellanox regmap LEDs for BMC and x86 platform
        leds: fix Kconfig text for MLXCPLD, SYSCON, MC13783, NETXBIG
        leds: Clarify supported chips by LM355x driver
        leds: leds-mlxcpld: Allow compilation for 32 bit arch
      e40dc662
    • L
      Merge tag 'for-linus-4.17' of git://github.com/cminyard/linux-ipmi · cc5ada7c
      Linus Torvalds 提交于
      Pull IPMI updates from Corey Minyard:
       "Mostly small changes, as usual.
      
        This does add an IPMI BMC server-side driver, to allow a Linux system
        to act as an IPMI controller. That's the biggest change, but it is
        just a new driver that is fairly narrow in use.
      
        The other largish change is removing ACPI SPMI probe support, which
        should have never really been there in the beginning"
      
      * tag 'for-linus-4.17' of git://github.com/cminyard/linux-ipmi:
        ipmi/parisc: Add IPMI chassis poweroff for certain HP PA-RISC and IA-64 servers
        ipmi_ssif: Fix kernel panic at msg_done_handler
        ipmi:pci: Blacklist a Realtek "IPMI" device
        ipmi: Remove ACPI SPMI probing from the system interface driver
        ipmi: Remove ACPI SPMI probing from the SSIF (I2C) driver
        ipmi: missing error code in try_smi_init()
        ipmi: use ARRAY_SIZE for poweroff_functions array sizing calculation
        ipmi: Consolidate cleanup code
        ipmi: Remove some unnecessary initializations
        ipmi: Fix some error cleanup issues
        ipmi: Add or fix SPDX-License-Identifier in all files
        ipmi: Re-use existing macros for built-in properties
        ipmi:pci: Make the PCI defines consistent with normal Linux ones
        ipmi: kcs_bmc: coding-style fixes and use new poll type
        char/ipmi: add documentation for sysfs interface
        ipmi: kcs_bmc: mark expected switch fall-through in kcs_bmc_handle_data
        ipmi: add an Aspeed KCS IPMI BMC driver
        ipmi: add a KCS IPMI BMC driver
      cc5ada7c
    • L
      Merge tag 'pinctrl-v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 77624cd2
      Linus Torvalds 提交于
      Pull pin control bulk updates from Linus Walleij:
       "New drivers:
      
         - Qualcomm SDM845: this is their new flagship SoC platform which
           seems to be targeted at premium mobile handsets.
      
         - Renesas R-Car M3-N SoC.
      
         - Renesas R8A77980 SoC.
      
         - NXP (ex Freescale) i.MX 6SLL SoC.
      
         - Mediatek MT2712 SoC.
      
         - Allwinner H6 SoC.
      
        Improvements:
      
         - Uniphier adds a few new functions and pins.
      
         - Renesas refactorings and additional pin definitions.
      
         - Improved pin groups for Axis Artpec6.
      
        Cleanup:
      
         - Drop the TZ1090 drivers. This platform is no longer maintained and
           is being deleted.
      
         - Drop ST-Ericsson U8540/U9540 support as this was never
           productified.
      
         - Overall minor fixes and janitorial"
      
      * tag 'pinctrl-v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (82 commits)
        pinctrl: uniphier: add UART hardware flow control pin-mux settings
        pinctrl: sunxi: add support for the Allwinner H6 main pin controller
        pinctrl: sunxi: change irq_bank_base to irq_bank_map
        pinctrl: sunxi: introduce IRQ bank conversion function
        pinctrl: sunxi: refactor irq related register function to have desc
        pinctrl: msm8998: Remove owner assignment from platform_driver
        pinctrl: uniphier: divide I2S and S/PDIF audio out pin-mux group
        pinctrl: uniphier: add PXs2 Audio in/out pin-mux settings
        pinctrl/amd: poll InterruptEnable bits in enable_irq
        pinctrl: ocelot: fix gpio direction
        pinctrl: mtk: fix check warnings.
        pintcrl: mtk: support bias-disable of generic and special pins simultaneously
        pinctrl: add mt2712 pinctrl driver
        pinctrl: pinctrl-single: Fix pcs_request_gpio() when bits_per_mux != 0
        pinctrl: imx: Add pinctrl driver support for imx6sll
        dt-bindings: imx: update pinctrl doc for imx6sll
        pinctrl: intel: Implement intel_gpio_get_direction callback
        pinctrl: stm32: add 'depends on HAS_IOMEM' to fix unmet dependency
        pinctrl: mediatek: mtk-common: use true and false for boolean values
        pinctrl: sunxi: always look for apb block
        ...
      77624cd2
    • L
      Merge tag 'mmc-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · dc73d6a8
      Linus Torvalds 提交于
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Export host capabilities through debugfs
         - Export card RCA register via sysfs
         - Improve card initializing sequence while enabling 4-bit bus
         - Export a function to enable/disable wakeup for card detect IRQ
      
        MMC host:
         - dw_mmc: Add support for new hi3798cv200 variant
         - dw_mmc: Remove support for some deprecated DT properties
         - mediatek: Add support for new variant used on MT7622 SoC
         - sdhci: Improve wakeup support for SDIO IRQs
         - sdhci: Improve wakeup support for card detect IRQs
         - sdhci-omap: Add tuning support
         - sdhci_omap: Add UHS-I mode support
         - sunxi: Prepare for runtime PM support via a few re-factorings
         - tmio: deprecate "toshiba,mmc-wrprotect-disable" DT property
         - tmio/renesas_sdhi: Consolidate code supporting write protect
         - tmio: Improve DMA vs PIO handling
         - tmio: Add support for IP-builtin card detection logic"
      
      * tag 'mmc-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (55 commits)
        mmc: renesas_sdhi: replace EXT_ACC with HOST_MODE
        mmc: update sdio_claim_irq documentation
        mmc: Export host capabilities to debugfs.
        mmc: core: Disable HPI for certain Micron (Numonyx) eMMC cards
        mmc: block: fix updating ext_csd caches on ioctl call
        mmc: sunxi: Set our device drvdata earlier
        mmc: sunxi: Move the reset deassertion before enabling the clocks
        mmc: sunxi: Move resources management to separate functions
        mmc: dw_mmc: add support for hi3798cv200 specific extensions of dw-mshc
        dt-bindings: mmc: add bindings for hi3798cv200-dw-mshc
        mmc: core: Export card RCA register via sysfs
        mmc: renesas_sdhi: fix WP detection
        mmc: core: Use memdup_user() rather than duplicating its implementation
        mmc: dw_mmc-rockchip: correct property names in debug
        mmc: sd: Remove redundant err assignment from mmc_read_switch
        mmc: sdio: Check the return value of sdio_enable_4bit_bus
        mmc: core: Don't try UHS-I mode if 4-bit mode isn't supported
        arm64: dts: hi3660: remove 'num-slots' property for dwmmc
        ARM: dts: lpc18xx: remove 'num-slots' property for dwmmc
        arm64: dts: stratix10: remove 'num-slots' property for dwmmc
        ...
      dc73d6a8
    • L
      Merge tag 'hsi-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · dabe5184
      Linus Torvalds 提交于
      Pull HSI updates from Sebastian Reichel:
      
       - spelling/typo fixes
      
       - remove extra error printing for -ENOMEM
      
      * tag 'hsi-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        HSI: hsi_char: Delete an error message for a failed memory allocation in hsc_probe()
        HSI: ssi_protocol: fix spelling mistake: "trigerred" -> "triggered"
        HSI: ssi_protocol: Delete an error message for a failed memory allocation in ssi_protocol_probe()
        HSI: ssi_protocol: Fix a typo in two comment lines
      dabe5184
    • L
      Merge tag 'for-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 3ac684b8
      Linus Torvalds 提交于
      Pull power supply and reset updates from Sebastian Reichel:
      
       - Microsemi Ocelot reset support
      
       - Spreadtrum SC27xx reset support
      
       - generic gpio charger: lot's of cleanups
      
       - axp20x fuel gauge: add AXP813 support
      
       - misc fixes, including one devicetree change for the Nokia N900, that
         has been Acked-by Tony Lindgren
      
      * tag 'for-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (27 commits)
        power: reset: at91-reset: Switch from the pr_*() to the dev_*() logging functions
        power: reset: at91-poweroff: Remove redundant dev_err call in at91_poweroff_probe()
        power: reset: at91-poweroff: Switch from the pr_*() to the dev_*() logging functions
        power: reset: make function sc27xx_poweroff_shutdown static
        power: supply: da9150-fg: remove VLA usage
        ARM: dts: omap3-n900: Add link between battery and charger
        power: supply: bq2415x: add DT referencing support
        power: supply: bq27xxx: support missing supplier device
        max17042: propagate of_node to power supply device
        power: supply: axp288_fuel_gauge: Fix full status reporting
        power: supply: axp288_fuel_gauge: Do not register FG on ECS EF20EA
        power: reset: gpio-poweroff: Support for timeout from device property
        dt-bindings: power: reset: gpio-poweroff: Add 'timeout-ms' property
        power: reset: Add Spreadtrum SC27xx PMIC power off support
        power: supply: axp20x_battery: add support for AXP813
        dt-bindings: power: supply: axp20x: add AXP813 battery DT binding
        power: supply: axp20x_battery: use data struct for variant specific code
        power: supply: gpio-charger: Remove pdata from gpio_charger
        power: supply: gpio-charger: Use GPIOF_ACTIVE_LOW for legacy setup
        power: supply: gpio-charger: Remove redundant dev_err call in probe function
        ...
      3ac684b8
    • L
      Merge tag 'spi-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 75dcc7ef
      Linus Torvalds 提交于
      Pull SPI updates from Mark Brown:
       "A quiet release for SPI, some fixes and small updates for individual
        drivers with one bigger change from Linus Walleij which coverts the
        bitbanging SPI driver to use the GPIO descriptor API from Linus
        Walleij.
      
        Since GPIO descriptors were used by platform data this means there's a
        few changes in arch/ making relevant updates for a few platforms and
        one misc driver that are affected"
      
      * tag 'spi-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (24 commits)
        MAINTAINERS: update Andi's e-mail
        spi: spi-atmel: Use correct enum for DMA transfer direction
        spi: sh-msiof: Document R-Car M3-N support
        spi: sh-msiof: Use correct enum for DMA transfer direction
        spi: sprd: Add the support of restarting the system
        spi: sprd: Simplify the transfer function
        spi: Fix unregistration of controller with fixed SPI bus number
        spi: rspi: use correct enum for DMA transfer direction
        spi: jcore: disable ref_clk after getting its rate
        spi: bcm-qspi: fIX some error handling paths
        spi: pxa2xx: Disable runtime PM if controller registration fails
        spi: tegra20-slink: use true and false for boolean values
        spi: Fix scatterlist elements size in spi_map_buf
        spi: atmel: init FIFOs before spi enable
        spi: orion: Prepare space for per-child options
        spi: orion: Make the error message greppable
        spi: orion: Rework GPIO CS handling
        spi: bcm2835aux: Avoid 64-bit arithmetic in xfer len calc
        spi: spi-gpio: Augment device tree bindings
        spi: spi-gpio: Rewrite to use GPIO descriptors
        ...
      75dcc7ef
    • L
      Merge tag 'regulator-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · b51c4354
      Linus Torvalds 提交于
      Pull regulator updates from Mark Brown:
       "A very small set of updates for the regulator API this time around,
        there's a few bug fixes and also:
      
         - Conversion of the regulator API to use GPIO descriptors rather than
           numbers from Linus Walleij.
      
         - New drivers for Marvell 88PG86x and Qualcomm PM8998 and PMI8998"
      
      * tag 'regulator-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: qcom: smd: Add pm8998 and pmi8998 regulators
        regulator: core: Add missing blank line between functions
        regulator: qcom_smd: Drop regulator/{machine,of_regulator} includes
        regulator: giving regulator controlling gpios a non-empty label when used through the devicetree.
        regulator: gpio: Fix some error handling paths in 'gpio_regulator_probe()'
        regulator: 88pg86x: new i2c dual regulator chip
        regulator: 88pg86x: add DT bindings document
        regulator: da9211: Pass descriptors instead of GPIO numbers
        regulator: da9055: Pass descriptor instead of GPIO number
        regulator: core: Support passing an initialized GPIO enable descriptor
        regulator: dt: regulator-name is required property
        regulator: of: Add a missing 'of_node_put()' in an error handling path of 'of_regulator_match()'
      b51c4354
    • L
      Merge tag 'regmap-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · ffd776bf
      Linus Torvalds 提交于
      Pull regmap updates from Mark Brown:
       "This is a fairly large set of updates for regmap, mainly bugfixes.
      
        The biggest bit of this is some fixes for the bulk operations code
        which had issues in some use cases, Charles Keepax has sorted them
        out. We also gained the ability to use debugfs with syscon regmaps and
        to specify the clock to be used with MMIO regmaps"
      
      * tag 'regmap-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (21 commits)
        regmap: debugfs: Improve warning message on debugfs_create_dir() failure
        regmap: debugfs: Free map->debugfs_name when debugfs_create_dir() failed
        regmap: debugfs: Don't leak dummy names
        regmap: debugfs: Disambiguate dummy debugfs file name
        regmap: mmio: Add function to attach a clock
        regmap: Merge redundant handling in regmap_bulk_write
        regmap: Tidy up regmap_raw_write chunking code
        regmap: Move the handling for max_raw_write into regmap_raw_write
        regmap: Remove unnecessary printk for failed allocation
        regmap: Format data for raw write in regmap_bulk_write
        regmap: use debugfs even when no device
        regmap: Allow missing device in regmap_name_read_file()
        regmap: Use _regmap_read in regmap_bulk_read
        regmap: Tidy up regmap_raw_read chunking code
        regmap: Move the handling for max_raw_read into regmap_raw_read
        regmap: Use helper function for register offset
        regmap: Don't use format_val in regmap_bulk_read
        regmap: Correct comparison in regmap_cached
        regmap: Correct offset handling in regmap_volatile_range
        regmap-i2c: Off by one in regmap_i2c_smbus_i2c_read/write()
        ...
      ffd776bf
    • L
      Merge tag 'pm-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f2d28566
      Linus Torvalds 提交于
      Pull power management updates from Rafael Wysocki:
       "These update the cpuidle poll state definition to reduce excessive
        energy usage related to it, add new CPU ID to the RAPL power capping
        driver, update the ACPI system suspend code to handle some special
        cases better, extend the PM core's device links code slightly, add new
        sysfs attribute for better suspend-to-idle diagnostics and easier
        hibernation handling, update power management tools and clean up
        cpufreq quite a bit.
      
        Specifics:
      
         - Modify the cpuidle poll state implementation to prevent CPUs from
           staying in the loop in there for excessive times (Rafael Wysocki).
      
         - Add Intel Cannon Lake chips support to the RAPL power capping
           driver (Joe Konno).
      
         - Add reference counting to the device links handling code in the PM
           core (Lukas Wunner).
      
         - Avoid reconfiguring GPEs on suspend-to-idle in the ACPI system
           suspend code (Rafael Wysocki).
      
         - Allow devices to be put into deeper low-power states via ACPI if
           both _SxD and _SxW are missing (Daniel Drake).
      
         - Reorganize the core ACPI suspend-to-idle wakeup code to avoid a
           keyboard wakeup issue on Asus UX331UA (Chris Chiu).
      
         - Prevent the PCMCIA library code from aborting suspend-to-idle due
           to noirq suspend failures resulting from incorrect assumptions
           (Rafael Wysocki).
      
         - Add coupled cpuidle supprt to the Exynos3250 platform (Marek
           Szyprowski).
      
         - Add new sysfs file to make it easier to specify the image storage
           location during hibernation (Mario Limonciello).
      
         - Add sysfs files for collecting suspend-to-idle usage and time
           statistics for CPU idle states (Rafael Wysocki).
      
         - Update the pm-graph utilities (Todd Brandt).
      
         - Reduce the kernel log noise related to reporting Low-power Idle
           constraings by the ACPI system suspend code (Rafael Wysocki).
      
         - Make it easier to distinguish dedicated wakeup IRQs in the
           /proc/interrupts output (Tony Lindgren).
      
         - Add the frequency table validation in cpufreq to the core and drop
           it from a number of cpufreq drivers (Viresh Kumar).
      
         - Drop "cooling-{min|max}-level" for CPU nodes from a couple of DT
           bindings (Viresh Kumar).
      
         - Clean up the CPU online error code path in the cpufreq core (Viresh
           Kumar).
      
         - Fix assorted issues in the SCPI, CPPC, mediatek and tegra186
           cpufreq drivers (Arnd Bergmann, Chunyu Hu, George Cherian, Viresh
           Kumar).
      
         - Drop memory allocation error messages from a few places in cpufreq
           and cpuildle drivers (Markus Elfring)"
      
      * tag 'pm-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (56 commits)
        ACPI / PM: Fix keyboard wakeup from suspend-to-idle on ASUS UX331UA
        cpufreq: CPPC: Use transition_delay_us depending transition_latency
        PM / hibernate: Change message when writing to /sys/power/resume
        PM / hibernate: Make passing hibernate offsets more friendly
        cpuidle: poll_state: Avoid invoking local_clock() too often
        PM: cpuidle/suspend: Add s2idle usage and time state attributes
        cpuidle: Enable coupled cpuidle support on Exynos3250 platform
        cpuidle: poll_state: Add time limit to poll_idle()
        cpufreq: tegra186: Don't validate the frequency table twice
        cpufreq: speedstep: Don't validate the frequency table twice
        cpufreq: sparc: Don't validate the frequency table twice
        cpufreq: sh: Don't validate the frequency table twice
        cpufreq: sfi: Don't validate the frequency table twice
        cpufreq: scpi: Don't validate the frequency table twice
        cpufreq: sc520: Don't validate the frequency table twice
        cpufreq: s3c24xx: Don't validate the frequency table twice
        cpufreq: qoirq: Don't validate the frequency table twice
        cpufreq: pxa: Don't validate the frequency table twice
        cpufreq: ppc_cbe: Don't validate the frequency table twice
        cpufreq: powernow: Don't validate the frequency table twice
        ...
      f2d28566
    • L
      Merge tag 'acpi-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · be553754
      Linus Torvalds 提交于
      Pull ACPI updates from Rafael Wysocki:
       "These update the ACPICA code in the kernel to follow upstream revision
        20180313 which includes fixes related to the so-called module-level
        AML (mostly "if" type of statements outside of any methods) that
        should improve the handling of systems that load alternative SSDTs
        depending on the current configuration, for example, and event
        handling fixes related to disabling and enabling GPEs on system
        startup and on suspend/resume.
      
        Moreover, the ACPICA license boilerplate is replaced with SPDX license
        IDs which alone reduces the number of lines of ACPICA code in the
        kernel quite a bit.
      
        Also added is a new driver for the generic ACPI Time and Alarm Device
        (TAD). At the moment it only handles the most basic capabilities of
        the TAD, however.
      
        In addition to that the ACPI battery driver is improved to handle
        battery thresholds on ThinkPads, among other things, some bugs are
        fixed, a new backlight quirk is added and some documentation is
        updated.
      
        Specifics:
      
         - Update the in-kernel ACPICA code to upstream revision 20180313
           including:
            * Module-level AML code handling fixes and simplifications (Bob
              Moore, Erik Schmauss).
            * Fixes and cleanups related to messaging (Bob Moore).
            * Events handling fixes related to disabling and enabling GPEs
              (Erik Schmauss).
            * Introduction of SPDX license identifiers and removal of license
              boilerplate in multiple files (Erik Schmauss).
            * Assorted fixes and cleanups (Bob Moore, Erik Schmauss, Hans de
              Goede, Seunghun Han).
      
         - Add new basic driver for the ACPI Time and Alarm Device (Rafael
           Wysocki).
      
         - Modify the ACPI battery driver to support battery thresholds on
           Lenovo ThinkPads (Ognjen Galic, Colin Ian King).
      
         - Avoid reporting battery capacity over 100 in the ACPI battery
           driver in some cases (Laszlo Toth).
      
         - Make the kernel recognize an OEM _OSI string from Dell to avoid
           power management issues with NVidia GPUs in Dell platforms (Alex
           Hung).
      
         - Make the PCI IRQ management code handle missing _PRS cleanly (Alex
           Hung).
      
         - Fix uevent notifications related to device hotplut (Lee, Chun-Yi).
      
         - Prevent the ACPI PAD driver from leaking memory (Lenny Szubowicz).
      
         - Update the ACPI CPPC library code to include subspace IDs in the
           kernel messages logged by it (George Cherian).
      
         - Add backlight quirk for Samsung 670Z5E (Hans de Goede).
      
         - Add the NFIT and HMAT tables to the list of ACPI tables that can be
           overridden via initrd (Dan Williams).
      
         - Fix and clean up some ACPI documentation and Kconfig help language
           (Aishwarya Pant, Randy Dunlap).
      
         - Replace license boilerplate with an SPDX license ID in the ACPI
           PMIC operation region handling code (Rajmohan Mani)"
      
      * tag 'acpi-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (39 commits)
        ACPI: acpi_pad: Fix memory leak in power saving threads
        ACPI / video: Add quirk to force acpi-video backlight on Samsung 670Z5E
        ACPI: Add Time and Alarm Device (TAD) driver
        ACPI / scan: Send change uevent with offine environmental data
        ACPI / Kconfig: Update ACPI_PROCFS_POWER help text
        ACPI / OSI: Add OEM _OSI strings to disable NVidia RTD3
        ACPICA: Update version to 20180313
        ACPICA: Cleanup/simplify module-level code support
        ACPICA: Events: add a return on failure from acpi_hw_register_read
        ACPICA: adding SPDX headers
        ACPICA: Rename a global for clarity, no functional change
        ACPICA: macros: fix ACPI_ERROR_NAMESPACE macro
        ACPICA: Change a compile-time option to a runtime option
        ACPICA: Remove calling of _STA from acpi_get_object_info()
        ACPICA: AML Debug Object: Don't ignore output of zero-length strings
        ACPICA: Fix memory leak on unusual memory leak
        ACPICA: Events: Dispatch GPEs after enabling for the first time
        ACPICA: Events: Add parallel GPE handling support to fix potential redundant _Exx evaluations
        ACPICA: Events: Stop unconditionally clearing ACPI IRQs during suspend/resume
        ACPICA: acpi: acpica: fix acpi operand cache leak in nseval.c
        ...
      be553754
    • P
      RISC-V: Rename CONFIG_CMDLINE_OVERRIDE to CONFIG_CMDLINE_FORCE · f6a11d9f
      Palmer Dabbelt 提交于
      The device tree code looks for CONFIG_CMDLINE_FORCE, but we were using
      CONFIG_CMDLINE_OVERRIDE.  It looks like this was just a hold over from
      before our device tree conversion -- in fact, we'd already removed the
      support for CONFIG_CMDLINE_OVERRIDE from our arch-specific code so it
      didn't even work any more.
      
      Thanks to Mortiz and Trung for finding the original bug, and for Michael
      for suggeting a better fix.
      
      CC: Trung Tran <trung.tran@ettus.com>
      CC: Michael J Clark <mjc@sifive.com>
      Reviewed-by: NMoritz Fischer <mdf@kernel.org>
      Signed-off-by: NPalmer Dabbelt <palmer@sifive.com>
      f6a11d9f
  3. 03 4月, 2018 3 次提交
    • D
      sparc64: Make atomic_xchg() an inline function rather than a macro. · d13864b6
      David S. Miller 提交于
      This avoids a lot of -Wunused warnings such as:
      
      ====================
      kernel/debug/debug_core.c: In function ‘kgdb_cpu_enter’:
      ./arch/sparc/include/asm/cmpxchg_64.h:55:22: warning: value computed is not used [-Wunused-value]
       #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
      
      ./arch/sparc/include/asm/atomic_64.h:86:30: note: in expansion of macro ‘xchg’
       #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
                                    ^~~~
      kernel/debug/debug_core.c:508:4: note: in expansion of macro ‘atomic_xchg’
          atomic_xchg(&kgdb_active, cpu);
          ^~~~~~~~~~~
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d13864b6
    • L
      Merge branch 'syscalls-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux · 642e7fd2
      Linus Torvalds 提交于
      Pull removal of in-kernel calls to syscalls from Dominik Brodowski:
       "System calls are interaction points between userspace and the kernel.
        Therefore, system call functions such as sys_xyzzy() or
        compat_sys_xyzzy() should only be called from userspace via the
        syscall table, but not from elsewhere in the kernel.
      
        At least on 64-bit x86, it will likely be a hard requirement from
        v4.17 onwards to not call system call functions in the kernel: It is
        better to use use a different calling convention for system calls
        there, where struct pt_regs is decoded on-the-fly in a syscall wrapper
        which then hands processing over to the actual syscall function. This
        means that only those parameters which are actually needed for a
        specific syscall are passed on during syscall entry, instead of
        filling in six CPU registers with random user space content all the
        time (which may cause serious trouble down the call chain). Those
        x86-specific patches will be pushed through the x86 tree in the near
        future.
      
        Moreover, rules on how data may be accessed may differ between kernel
        data and user data. This is another reason why calling sys_xyzzy() is
        generally a bad idea, and -- at most -- acceptable in arch-specific
        code.
      
        This patchset removes all in-kernel calls to syscall functions in the
        kernel with the exception of arch/. On top of this, it cleans up the
        three places where many syscalls are referenced or prototyped, namely
        kernel/sys_ni.c, include/linux/syscalls.h and include/linux/compat.h"
      
      * 'syscalls-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux: (109 commits)
        bpf: whitelist all syscalls for error injection
        kernel/sys_ni: remove {sys_,sys_compat} from cond_syscall definitions
        kernel/sys_ni: sort cond_syscall() entries
        syscalls/x86: auto-create compat_sys_*() prototypes
        syscalls: sort syscall prototypes in include/linux/compat.h
        net: remove compat_sys_*() prototypes from net/compat.h
        syscalls: sort syscall prototypes in include/linux/syscalls.h
        kexec: move sys_kexec_load() prototype to syscalls.h
        x86/sigreturn: use SYSCALL_DEFINE0
        x86: fix sys_sigreturn() return type to be long, not unsigned long
        x86/ioport: add ksys_ioperm() helper; remove in-kernel calls to sys_ioperm()
        mm: add ksys_readahead() helper; remove in-kernel calls to sys_readahead()
        mm: add ksys_mmap_pgoff() helper; remove in-kernel calls to sys_mmap_pgoff()
        mm: add ksys_fadvise64_64() helper; remove in-kernel call to sys_fadvise64_64()
        fs: add ksys_fallocate() wrapper; remove in-kernel calls to sys_fallocate()
        fs: add ksys_p{read,write}64() helpers; remove in-kernel calls to syscalls
        fs: add ksys_truncate() wrapper; remove in-kernel calls to sys_truncate()
        fs: add ksys_sync_file_range helper(); remove in-kernel calls to syscall
        kernel: add ksys_setsid() helper; remove in-kernel call to sys_setsid()
        kernel: add ksys_unshare() helper; remove in-kernel calls to sys_unshare()
        ...
      642e7fd2
    • O
      bitmap: fix memset optimization on big-endian systems · 21035965
      Omar Sandoval 提交于
      Commit 2a98dc02 ("include/linux/bitmap.h: turn bitmap_set and
      bitmap_clear into memset when possible") introduced an optimization to
      bitmap_{set,clear}() which uses memset() when the start and length are
      constants aligned to a byte.
      
      This is wrong on big-endian systems; our bitmaps are arrays of unsigned
      long, so bit n is not at byte n / 8 in memory.  This was caught by the
      Btrfs selftests, but the bitmap selftests also fail when run on a
      big-endian machine.
      
      We can still use memset if the start and length are aligned to an
      unsigned long, so do that on big-endian.  The same problem applies to
      the memcmp in bitmap_equal(), so fix it there, too.
      
      Fixes: 2a98dc02 ("include/linux/bitmap.h: turn bitmap_set and bitmap_clear into memset when possible")
      Fixes: 2c6deb01 ("bitmap: use memcmp optimisation in more situations")
      Cc: stable@kernel.org
      Reported-by: N"Erhard F." <erhard_f@mailbox.org>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: NOmar Sandoval <osandov@fb.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      21035965