1. 18 5月, 2016 8 次提交
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 820c687b
      Linus Torvalds 提交于
      Pull UDF fixes from Jan Kara:
       "A fix for UDF crash on corrupted media and one UDF header fixup"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Export superblock magic to userspace
        udf: Prevent stack overflow on corrupted filesystem mount
      820c687b
    • L
      Merge tag 'jfs-4.7' of git://github.com/kleikamp/linux-shaggy · dba1e987
      Linus Torvalds 提交于
      Pull jfs updates from Dave Kleikamp:
       "Some jfs logging cleanups from Joe Perches"
      
      * tag 'jfs-4.7' of git://github.com/kleikamp/linux-shaggy:
        jfs: Coalesce some formats
        jfs: Remove unnecessary line continuations and terminating newlines
        jfs: Remove terminating newlines from jfs_info, jfs_warn, jfs_err uses
      dba1e987
    • K
      exec: clarify reasoning for euid/egid reset · cb6fd68f
      Kees Cook 提交于
      This section of code initially looks redundant, but is required. This
      improves the comment to explain more clearly why the reset is needed.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Acked-by: NSerge E. Hallyn <serge.hallyn@ubuntu.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cb6fd68f
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 7f427d3a
      Linus Torvalds 提交于
      Pull parallel filesystem directory handling update from Al Viro.
      
      This is the main parallel directory work by Al that makes the vfs layer
      able to do lookup and readdir in parallel within a single directory.
      That's a big change, since this used to be all protected by the
      directory inode mutex.
      
      The inode mutex is replaced by an rwsem, and serialization of lookups of
      a single name is done by a "in-progress" dentry marker.
      
      The series begins with xattr cleanups, and then ends with switching
      filesystems over to actually doing the readdir in parallel (switching to
      the "iterate_shared()" that only takes the read lock).
      
      A more detailed explanation of the process from Al Viro:
       "The xattr work starts with some acl fixes, then switches ->getxattr to
        passing inode and dentry separately.  This is the point where the
        things start to get tricky - that got merged into the very beginning
        of the -rc3-based #work.lookups, to allow untangling the
        security_d_instantiate() mess.  The xattr work itself proceeds to
        switch a lot of filesystems to generic_...xattr(); no complications
        there.
      
        After that initial xattr work, the series then does the following:
      
         - untangle security_d_instantiate()
      
         - convert a bunch of open-coded lookup_one_len_unlocked() to calls of
           that thing; one such place (in overlayfs) actually yields a trivial
           conflict with overlayfs fixes later in the cycle - overlayfs ended
           up switching to a variant of lookup_one_len_unlocked() sans the
           permission checks.  I would've dropped that commit (it gets
           overridden on merge from #ovl-fixes in #for-next; proper resolution
           is to use the variant in mainline fs/overlayfs/super.c), but I
           didn't want to rebase the damn thing - it was fairly late in the
           cycle...
      
         - some filesystems had managed to depend on lookup/lookup exclusion
           for *fs-internal* data structures in a way that would break if we
           relaxed the VFS exclusion.  Fixing hadn't been hard, fortunately.
      
         - core of that series - parallel lookup machinery, replacing
           ->i_mutex with rwsem, making lookup_slow() take it only shared.  At
           that point lookups happen in parallel; lookups on the same name
           wait for the in-progress one to be done with that dentry.
      
           Surprisingly little code, at that - almost all of it is in
           fs/dcache.c, with fs/namei.c changes limited to lookup_slow() -
           making it use the new primitive and actually switching to locking
           shared.
      
         - parallel readdir stuff - first of all, we provide the exclusion on
           per-struct file basis, same as we do for read() vs lseek() for
           regular files.  That takes care of most of the needed exclusion in
           readdir/readdir; however, these guys are trickier than lookups, so
           I went for switching them one-by-one.  To do that, a new method
           '->iterate_shared()' is added and filesystems are switched to it
           as they are either confirmed to be OK with shared lock on directory
           or fixed to be OK with that.  I hope to kill the original method
           come next cycle (almost all in-tree filesystems are switched
           already), but it's still not quite finished.
      
         - several filesystems get switched to parallel readdir.  The
           interesting part here is dealing with dcache preseeding by readdir;
           that needs minor adjustment to be safe with directory locked only
           shared.
      
           Most of the filesystems doing that got switched to in those
           commits.  Important exception: NFS.  Turns out that NFS folks, with
           their, er, insistence on VFS getting the fuck out of the way of the
           Smart Filesystem Code That Knows How And What To Lock(tm) have
           grown the locking of their own.  They had their own homegrown
           rwsem, with lookup/readdir/atomic_open being *writers* (sillyunlink
           is the reader there).  Of course, with VFS getting the fuck out of
           the way, as requested, the actual smarts of the smart filesystem
           code etc. had become exposed...
      
         - do_last/lookup_open/atomic_open cleanups.  As the result, open()
           without O_CREAT locks the directory only shared.  Including the
           ->atomic_open() case.  Backmerge from #for-linus in the middle of
           that - atomic_open() fix got brought in.
      
         - then comes NFS switch to saner (VFS-based ;-) locking, killing the
           homegrown "lookup and readdir are writers" kinda-sorta rwsem.  All
           exclusion for sillyunlink/lookup is done by the parallel lookups
           mechanism.  Exclusion between sillyunlink and rmdir is a real rwsem
           now - rmdir being the writer.
      
           Result: NFS lookups/readdirs/O_CREAT-less opens happen in parallel
           now.
      
         - the rest of the series consists of switching a lot of filesystems
           to parallel readdir; in a lot of cases ->llseek() gets simplified
           as well.  One backmerge in there (again, #for-linus - rockridge
           fix)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (74 commits)
        ext4: switch to ->iterate_shared()
        hfs: switch to ->iterate_shared()
        hfsplus: switch to ->iterate_shared()
        hostfs: switch to ->iterate_shared()
        hpfs: switch to ->iterate_shared()
        hpfs: handle allocation failures in hpfs_add_pos()
        gfs2: switch to ->iterate_shared()
        f2fs: switch to ->iterate_shared()
        afs: switch to ->iterate_shared()
        befs: switch to ->iterate_shared()
        befs: constify stuff a bit
        isofs: switch to ->iterate_shared()
        get_acorn_filename(): deobfuscate a bit
        btrfs: switch to ->iterate_shared()
        logfs: no need to lock directory in lseek
        switch ecryptfs to ->iterate_shared
        9p: switch to ->iterate_shared()
        fat: switch to ->iterate_shared()
        romfs, squashfs: switch to ->iterate_shared()
        more trivial ->iterate_shared conversions
        ...
      7f427d3a
    • L
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ede40902
      Linus Torvalds 提交于
      Pull irq updates from Thomas Gleixner:
       "This update delivers:
      
         - Yet another interrupt chip diver (LPC32xx)
         - Core functions to handle partitioned per-cpu interrupts
         - Enhancements to the IPI core
         - Proper handling of irq type configuration
         - A large set of ARM GIC enhancements
         - The usual pile of small fixes, cleanups and enhancements"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
        irqchip/bcm2836: Use a more generic memory barrier call
        irqchip/bcm2836: Fix compiler warning on 64-bit build
        irqchip/bcm2836: Drop smp_set_ops on arm64 builds
        irqchip/gic: Add helper functions for GIC setup and teardown
        irqchip/gic: Store GIC configuration parameters
        irqchip/gic: Pass GIC pointer to save/restore functions
        irqchip/gic: Return an error if GIC initialisation fails
        irqchip/gic: Remove static irq_chip definition for eoimode1
        irqchip/gic: Don't initialise chip if mapping IO space fails
        irqchip/gic: WARN if setting the interrupt type for a PPI fails
        irqchip/gic: Don't unnecessarily write the IRQ configuration
        irqchip: Mask the non-type/sense bits when translating an IRQ
        genirq: Ensure IRQ descriptor is valid when setting-up the IRQ
        irqchip/gic-v3: Configure all interrupts as non-secure Group-1
        irqchip/gic-v2m: Add workaround for Broadcom NS2 GICv2m erratum
        irqchip/irq-alpine-msi: Don't use <asm-generic/msi.h>
        irqchip/mbigen: Checking for IS_ERR() instead of NULL
        irqchip/gic-v3: Remove inexistant register definition
        irqchip/gicv3-its: Don't allow devices whose ID is outside range
        irqchip: Add LPC32xx interrupt controller driver
        ...
      ede40902
    • L
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 91e8d0cb
      Linus Torvalds 提交于
      Pull timer updates from Thomas Gleixner:
       "A rather small set of patches from the timer departement:
      
         - Some more y2038 work
         - Yet another new clocksource driver
         - The usual set of small fixes, cleanups and enhancements"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/drivers/tegra: Remove unused suspend/resume code
        clockevents/driversi/mps2: add MPS2 Timer driver
        dt-bindings: document the MPS2 timer bindings
        clocksource/drivers/mtk_timer: Add __init attribute
        clockevents/drivers/dw_apb_timer: Implement ->set_state_oneshot_stopped()
        time: Introduce do_sys_settimeofday64()
        security: Introduce security_settime64()
        clocksource: Add missing include of of.h.
      91e8d0cb
    • L
      Merge tag 'trace-fixes-v4.6-rc7' of... · 2fe2edf8
      Linus Torvalds 提交于
      Merge tag 'trace-fixes-v4.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing ring-buffer fixes from Steven Rostedt:
       "Hao Qin reported an integer overflow possibility with signed and
        unsigned numbers in the ring-buffer code.
      
          https://bugzilla.kernel.org/show_bug.cgi?id=118001
      
        At first I did not think this was too much of an issue, because the
        overflow would be caught later when either too much data was allocated
        or it would trigger RB_WARN_ON() which shuts down the ring buffer.
      
        But looking closer into it, I found that the right settings could
        bypass the checks and crash the kernel.  Luckily, this is only
        accessible by root.
      
        The first fix is to convert all the variables into long, such that we
        don't get into issues between 32 bit variables being assigned 64 bit
        ones.  This fixes the RB_WARN_ON() triggering.
      
        The next fix is to get rid of a duplicate DIV_ROUND_UP() that when
        called twice with the right value, can cause a kernel crash.
      
        The first DIV_ROUND_UP() is to normalize the input and it is checked
        against the minimum allowable value.  But then DIV_ROUND_UP() is
        called again, which can overflow due to the (a + b - 1)/b, logic.  The
        first called upped the value, the second can overflow (with the +b
        part).
      
        The second call to DIV_ROUND_UP() came in via a second change a while
        ago and the code is cleaned up to remove it"
      
      * tag 'trace-fixes-v4.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ring-buffer: Prevent overflow of size in ring_buffer_resize()
        ring-buffer: Use long for nr_pages to avoid overflow failures
      2fe2edf8
    • L
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 9a07a796
      Linus Torvalds 提交于
      Pull crypto update from Herbert Xu:
       "API:
      
         - Crypto self tests can now be disabled at boot/run time.
         - Add async support to algif_aead.
      
        Algorithms:
      
         - A large number of fixes to MPI from Nicolai Stange.
         - Performance improvement for HMAC DRBG.
      
        Drivers:
      
         - Use generic crypto engine in omap-des.
         - Merge ppc4xx-rng and crypto4xx drivers.
         - Fix lockups in sun4i-ss driver by disabling IRQs.
         - Add DMA engine support to ccp.
         - Reenable talitos hash algorithms.
         - Add support for Hisilicon SoC RNG.
         - Add basic crypto driver for the MXC SCC.
      
        Others:
      
         - Do not allocate crypto hash tfm in NORECLAIM context in ecryptfs"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (77 commits)
        crypto: qat - change the adf_ctl_stop_devices to void
        crypto: caam - fix caam_jr_alloc() ret code
        crypto: vmx - comply with ABIs that specify vrsave as reserved.
        crypto: testmgr - Add a flag allowing the self-tests to be disabled at runtime.
        crypto: ccp - constify ccp_actions structure
        crypto: marvell/cesa - Use dma_pool_zalloc
        crypto: qat - make adf_vf_isr.c dependant on IOV config
        crypto: qat - Fix typo in comments
        lib: asn1_decoder - add MODULE_LICENSE("GPL")
        crypto: omap-sham - Use dma_request_chan() for requesting DMA channel
        crypto: omap-des - Use dma_request_chan() for requesting DMA channel
        crypto: omap-aes - Use dma_request_chan() for requesting DMA channel
        crypto: omap-des - Integrate with the crypto engine framework
        crypto: s5p-sss - fix incorrect usage of scatterlists api
        crypto: s5p-sss - Fix missed interrupts when working with 8 kB blocks
        crypto: s5p-sss - Use common BIT macro
        crypto: mxc-scc - fix unwinding in mxc_scc_crypto_register()
        crypto: mxc-scc - signedness bugs in mxc_scc_ablkcipher_req_init()
        crypto: talitos - fix ahash algorithms registration
        crypto: ccp - Ensure all dependencies are specified
        ...
      9a07a796
  2. 17 5月, 2016 32 次提交
    • A
      Merge branch 'ovl-fixes' into for-linus · 0e0162bb
      Al Viro 提交于
      Backmerge to resolve a conflict in ovl_lookup_real();
      "ovl_lookup_real(): use lookup_one_len_unlocked()" instead,
      but it was too late in the cycle to rebase.
      0e0162bb
    • L
      Merge tag 'device-properties-4.7-rc1' of... · 16490980
      Linus Torvalds 提交于
      Merge tag 'device-properties-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
      
      Pull device properties update from Rafael Wysocki:
       "Generic device properties framework update.
      
        Just one commit reworking the handling of built-in properties
        initialization and updating a few drivers in accordance with the core
        framework changes"
      
      * tag 'device-properties-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        device property: don't bother the drivers with struct property_set
      16490980
    • L
      Merge tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 46c13450
      Linus Torvalds 提交于
      Pull ACPI updates from Rafael Wysocki:
       "The new features here are ACPI 6.1 support (and some previously
        missing bits of ACPI 6.0 support) in ACPICA and two new drivers, a
        driver for the ACPI Generic Event Device (GED) feature introduced by
        ACPI 6.1 and the INT3406 thermal driver for display thermal
        management.  Also the value returned by the _HRV (hardware revision)
        ACPI object will be exported to user space via sysfs now.
      
        In addition to that, ACPI on ARM64 will not depend on EXPERT any more.
      
        The rest is mostly fixes and cleanups and some code reorganization.
      
        Specifics:
      
         - In-kernel ACPICA code update to the upstream release 20160422
           adding support for ACPI 6.1 along with some previously missing bits
           of ACPI 6.0 support, making a fair amount of fixes and cleanups and
           reducing divergences between the upstream ACPICA and the in-kernel
           code (Bob Moore, Lv Zheng, Al Stone, Aleksey Makarov, Will Miles)
      
         - ACPI Generic Event Device (GED) support and a fix for it (Sinan
           Kaya, Paul Gortmaker)
      
         - INT3406 thermal driver for display thermal management and ACPI
           backlight support code reorganization related to it (Aaron Lu, Arnd
           Bergmann)
      
         - Support for exporting the value returned by the _HRV (hardware
           revision) ACPI object via sysfs (Betty Dall)
      
         - Removal of the EXPERT dependency for ACPI on ARM64 (Mark Brown)
      
         - Rework of the handling of ACPI _OSI mechanism allowing the
           _OSI("Darwin") support to be overridden from the kernel command
           line among other things (Lv Zheng, Chen Yu)
      
         - Rework of the ACPI tables override mechanism to prepare it for the
           introduction of overlays support going forward (Lv Zheng, Rafael
           Wysocki)
      
         - Fixes related to the ECDT support and module-level execution of AML
           (Lv Zheng)
      
         - ACPI PCI interrupts management update to make it work better on
           ARM64 mostly (Sinan Kaya)
      
         - ACPI SRAT handling update to make the code process all entires in
           the table order regardless of the entry type (Lukasz Anaczkowski)
      
         - EFI power off support for full-hardware ACPI platforms that don't
           support ACPI S5 (Chen Yu)
      
         - Fixes and cleanups related to the ACPI core's sysfs interface (Dan
           Carpenter, Betty Dall)
      
         - acpi_dev_present() API rework to reduce possible confusion related
           to it (Lukas Wunner)
      
         - Removal of CLK_IS_ROOT from two ACPI drivers (Stephen Boyd)"
      
      * tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (82 commits)
        ACPI / video: mark acpi_video_get_levels() inline
        Thermal / ACPI / video: add INT3406 thermal driver
        ACPI / GED: make evged.c explicitly non-modular
        ACPI / tables: Fix DSDT override mechanism
        ACPI / sysfs: fix error code in get_status()
        ACPICA: Update version to 20160422
        ACPICA: Move all ASCII utilities to a common file
        ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support for acpi_hw_write()
        ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support in acpi_hw_read()
        ACPICA: Executer: Introduce a set of macros to handle bit width mask generation
        ACPICA: Hardware: Add optimized access bit width support
        ACPICA: Utilities: Add ACPI_IS_ALIGNED() macro
        ACPICA: Renamed some #defined flag constants for clarity
        ACPICA: ACPI 6.0, tools/iasl: Add support for new resource descriptors
        ACPICA: ACPI 6.0: Update _BIX support for new package element
        ACPICA: ACPI 6.1: Support for new PCCT subtable
        ACPICA: Refactor evaluate_object to reduce nesting
        ACPICA: Divergence: remove unwanted spaces for typedef
        ACPI,PCI,IRQ: remove SCI penalize function
        ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()
        ..
      46c13450
    • L
      Merge tag 'pm-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d57d3943
      Linus Torvalds 提交于
      Pull power management updates from Rafael Wysocki:
       "The majority of changes go into the cpufreq subsystem this time.
      
        To me, quite obviously, the biggest ticket item is the new "schedutil"
        governor.  Interestingly enough, it's the first new cpufreq governor
        since the beginning of the git era (except for some out-of-the-tree
        ones).
      
        There are two main differences between it and the existing governors.
        First, it uses the information provided by the scheduler directly for
        making its decisions, so it doesn't have to track anything by itself.
        Second, it can invoke drivers (supporting that feature) to adjust CPU
        performance right away without having to spawn work items to be
        executed in process context or similar.  Currently, the acpi-cpufreq
        driver is the only one supporting that mode of operation, but then it
        is used on a large number of systems.
      
        The "schedutil" governor as included here is very simple and mostly
        regarded as a foundation for future work on the integration of the
        scheduler with CPU power management (in fact, there is work in
        progress on top of it already).  Nevertheless it works and the
        preliminary results obtained with it are encouraging.
      
        There also is some consolidation of CPU frequency management for ARM
        platforms that can add their machine IDs the the new stub dt-platdev
        driver now and that will take care of creating the requisite platform
        device for cpufreq-dt, so it is not necessary to do that in platform
        code any more.  Several ARM platforms are switched over to using this
        generic mechanism.
      
        In addition to that, the intel_pstate driver is now going to respect
        CPU frequency limits set by the platform firmware (or a BMC) and
        provided via the ACPI _PPC object.
      
        The devfreq subsystem is getting a new "passive" governor for SoCs
        subsystems that will depend on somebody else to manage their voltage
        rails and its support for Samsung Exynos SoCs is consolidated.
      
        The rest is support for new hardware (Intel Broxton support in
        intel_idle for one example), bug fixes, optimizations and cleanups in
        a number of places.
      
        Specifics:
      
         - New cpufreq "schedutil" governor (making decisions based on CPU
           utilization information provided by the scheduler and capable of
           switching CPU frequencies right away if the underlying driver
           supports that) and support for fast frequency switching in the
           acpi-cpufreq driver (Rafael Wysocki)
      
         - Consolidation of CPU frequency management on ARM platforms allowing
           them to get rid of some platform-specific boilerplate code if they
           are going to use the cpufreq-dt driver (Viresh Kumar, Finley Xiao,
           Marc Gonzalez)
      
         - Support for ACPI _PPC and CPU frequency limits in the intel_pstate
           driver (Srinivas Pandruvada)
      
         - Fixes and cleanups in the cpufreq core and generic governor code
           (Rafael Wysocki, Sai Gurrappadi)
      
         - intel_pstate driver optimizations and cleanups (Rafael Wysocki,
           Philippe Longepe, Chen Yu, Joe Perches)
      
         - cpufreq powernv driver fixes and cleanups (Akshay Adiga, Shilpasri
           Bhat)
      
         - cpufreq qoriq driver fixes and cleanups (Jia Hongtao)
      
         - ACPI cpufreq driver cleanups (Viresh Kumar)
      
         - Assorted cpufreq driver updates (Ashwin Chaugule, Geliang Tang,
           Javier Martinez Canillas, Paul Gortmaker, Sudeep Holla)
      
         - Assorted cpufreq fixes and cleanups (Joe Perches, Arnd Bergmann)
      
         - Fixes and cleanups in the OPP (Operating Performance Points)
           framework, mostly related to OPP sharing, and reorganization of
           OF-dependent code in it (Viresh Kumar, Arnd Bergmann, Sudeep Holla)
      
         - New "passive" governor for devfreq (for SoC subsystems that will
           rely on someone else for the management of their power resources)
           and consolidation of devfreq support for Exynos platforms, coding
           style and typo fixes for devfreq (Chanwoo Choi, MyungJoo Ham)
      
         - PM core fixes and cleanups, mostly to make it work better with the
           generic power domains (genpd) framework, and updates for that
           framework (Ulf Hansson, Thierry Reding, Colin Ian King)
      
         - Intel Broxton support for the intel_idle driver (Len Brown)
      
         - cpuidle core optimization and fix (Daniel Lezcano, Dave Gerlach)
      
         - ARM cpuidle cleanups (Jisheng Zhang)
      
         - Intel Kabylake support for the RAPL power capping driver (Jacob
           Pan)
      
         - AVS (Adaptive Voltage Switching) rockchip-io driver update (Heiko
           Stuebner)
      
         - Updates for the cpupower tool (Arjun Sreedharan, Colin Ian King,
           Mattia Dongili, Thomas Renninger)"
      
      * tag 'pm-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (112 commits)
        intel_pstate: Clean up get_target_pstate_use_performance()
        intel_pstate: Use sample.core_avg_perf in get_avg_pstate()
        intel_pstate: Clarify average performance computation
        intel_pstate: Avoid unnecessary synchronize_sched() during initialization
        cpufreq: schedutil: Make default depend on CONFIG_SMP
        cpufreq: powernv: del_timer_sync when global and local pstate are equal
        cpufreq: powernv: Move smp_call_function_any() out of irq safe block
        intel_pstate: Clean up intel_pstate_get()
        cpufreq: schedutil: Make it depend on CONFIG_SMP
        cpufreq: governor: Fix handling of special cases in dbs_update()
        PM / OPP: Move CONFIG_OF dependent code in a separate file
        cpufreq: intel_pstate: Ignore _PPC processing under HWP
        cpufreq: arm_big_little: use generic OPP functions for {init, free}_opp_table
        PM / OPP: add non-OF versions of dev_pm_opp_{cpumask_, }remove_table
        cpufreq: tango: Use generic platdev driver
        PM / OPP: pass cpumask by reference
        cpufreq: Fix GOV_LIMITS handling for the userspace governor
        cpupower: fix potential memory leak
        PM / devfreq: style/typo fixes
        PM / devfreq: exynos: Add the detailed correlation for Exynos5422 bus
        ..
      d57d3943
    • L
      Merge tag 'mmc-v4.7' of git://git.linaro.org/people/ulf.hansson/mmc · 3e21e5dd
      Linus Torvalds 提交于
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Add TRACE support to be able to debug request flow
         - Extend/improve reset support for (e)MMC
         - Convert MMC pwrseq to platform device drivers
         - Use IDA for indexes
         - Some additional minor improvements
      
        MMC host:
         - sdhci: Re-factoring, clean-ups and improvements
         - sdhci-acpi|pci: Use MMC_CAP_AGGRESSIVE_PM for Broxton
         - omap/omap_hsmmc: Convert to use dma_request_chan()
         - usdhi6rol0: Add support for UHS modes
         - sh_mmcif: Update runtime PM support
         - tmio: Wolfram Sang steps in as maintainer
         - tmio: Add UHS-I mode support
         - sh_mobile_sdhi: Add UHS-I mode support
         - tmio/sdhi: Re-factoring, clean-ups and improvements
         - dw_mmc: Re-factoring and clean-ups
         - davinci: Convert to use dma_request_chan()"
      
      * tag 'mmc-v4.7' of git://git.linaro.org/people/ulf.hansson/mmc: (99 commits)
        mmc: mmc: Fix partition switch timeout for some eMMCs
        mmc: sh_mobile_sdhi: enable SDIO IRQs for RCar Gen3
        mmc: sdio: fall back to SDIO 1.0 for broken 1.1 cards
        mmc: sdhci-st: correct name of sd-uhs-sdr50 property
        MAINTAINERS: update entry for TMIO MMC driver
        mmc: block: improve logging of handling emmc timeouts
        mmc: sdhci: removed unneeded function wrappers
        mmc: core: remove the invalid message in mmc_select_timing
        mmc: core: fix using wrong io voltage if mmc_select_hs200 fails
        mmc: sdhci-of-arasan: fix set_clock when a phy is supported
        mmc: omap: Use dma_request_chan() for requesting DMA channel
        mmc: mmc: Attempt to flush cache before reset
        mmc: sh_mobile_sdhi: check return value when changing clk
        mmc: sh_mobile_sdhi: only change the clock on RCar Gen2+
        mmc: tmio/sdhi: introduce flag for RCar 2+ specific features
        mmc: sh_mobile_sdhi: make clk_update function more compact
        mmc: omap_hsmmc: Use dma_request_chan() for requesting DMA channel
        mmc: sdhci-of-at91: add presets setup
        mmc: usdhi6rol0: add pinctrl to set pin drive strength
        mmc: usdhi6rol0: add support for UHS modes
        ...
      3e21e5dd
    • L
      Merge tag 'regulator-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · d9dce51c
      Linus Torvalds 提交于
      Pull regulator updates from Mark Brown:
       "A few core enhancements to deal with some of the slightly more
        complicated edge cases that have started cropping up in systems, both
        new ones and old ones that people started worrying about upstream, but
        otherwise a quiet release for the regulator API:
      
         - When applying constraints at system image if we have a voltage
           range specified and the regulator is currently configured outside
           the bounds of that range bring the regulator to the nearest end of
           the range.
      
         - When regulators are in non-regulating bypass modes make sure that
           we always use the voltage from the parent regulator.
      
         - Support for LP873x, PV88080, PM8894 and FAN53555 chips"
      
      * tag 'regulator-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (71 commits)
        regulator: rk808: Migrate to regulator core's simplified DT parsing code
        regulator: lp873x: Add support for lp873x PMIC regulators
        regulator: tps65917/palmas: Simplify multiple dereference of match->of_node
        regulator: tps65917/palmas: Handle possible memory allocation failure
        regulator: tps65917/palmas: Simplify multiple dereference of pdata->reg_init[idx]
        regulator: tps65917/palmas: Simplify multiple dereference of ddata->palmas_matches[idx]
        regulator: pwm: Use pwm_get_args() where appropriate
        pwm: Introduce the pwm_args concept
        regulator: max77686: Configure enable time to properly handle regulator enable
        regulator: rk808: Add rk808_reg_ops_ranges for LDO3
        regulator: core: Add early supply resolution for regulators
        regulator: axp20x: Fix axp22x ldo_io voltage ranges
        regulator: tps65917/palmas: Add bypass "On" value
        regulator: rk808: remove unused rk808_reg_ops_ranges
        regulator: refactor valid_ops_mask checking code
        regulator: rk808: remove linear range definitions with a single range
        regulator: max77620: Add support for device specific ramp rate setting
        regulator: max77620: Add details of device specific ramp rate setting
        regulator: helpers: Ensure bypass register field matches ON value
        regulator: core: Move registration of regulator device
        ...
      d9dce51c
    • L
      Merge tag 'regmap-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · e2ca5425
      Linus Torvalds 提交于
      Pull regmap updates from Mark Brown:
       "The updates for this kernel release really are trivial:
      
         - Check that max_register is set for the flat cache to avoid a crash
           on initialization
      
         - Fix a typo in the documentation"
      
      * tag 'regmap-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regcache: flat: Require max_registers to be set
        regmap: cache: Fix typo in cache_bypass parameter description
      e2ca5425
    • L
      Merge tag 'for-linus-4.7' of git://git.code.sf.net/p/openipmi/linux-ipmi · 27d6cafa
      Linus Torvalds 提交于
      Pull IPMI updates from Corey Minyard:
       "Some small fixes and cleanups, these latest have been in linux-next
        for a few weeks"
      
      * tag 'for-linus-4.7' of git://git.code.sf.net/p/openipmi/linux-ipmi:
        ipmi: Fix the I2C address extraction from SPMI tables
        IPMI: reserve memio regions separately
        ipmi: Fix some minor coding style issues
      27d6cafa
    • L
      Merge tag 'hwmon-for-linus-v4.7' of... · fdb8a291
      Linus Torvalds 提交于
      Merge tag 'hwmon-for-linus-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - major rework of it87 driver: cleanup, added support for additional
         attributes, added support for two chips in the system, added support
         for IT8728E
      
       - fam17h_power driver now reports accumulated power consumption
      
       - new driver for MAX31722/MAX31723 temperature sensors
      
       - minor fixes to sch5636 and ads7828 drivers
      
      * tag 'hwmon-for-linus-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (35 commits)
        hwmon: (sch5636) trivial fix of spelling mistake on revision
        hwmon: (it87) Add support for IT8628E
        hwmon: (it87) Fix pwm_temp_map for system with 6 pwm channels
        hwmon: (it87) Support automatic pwm control on newer chips
        hwmon: (it87) Enhance validation for fan4 and fan5
        hwmon: (it87) Support disabling fan control for all pwm control and chips
        hwmon: (it87) Formatting cleanup
        hwmon: (it87) Use defines for array sizes and sensor counts
        hwmon: (it87) Use BIT macro
        hwmon: (it87) Add support for VIN7 to VIN10 on IT8620E
        hwmon: (it87) Simplify reading voltage registers
        hwmon: (it87) Support up to 6 temperature sensors on IT8620E
        hwmon: (it87) Convert to use new hwmon API
        hwmon: (it87) Use single group and is_visible for miscellaneous attributes
        hwmon: (it87) Use is_visible for pwm attributes
        hwmon: (it87) Use is_visible for fan attributes
        hwmon: (it87) Use is_visible for temperature sensors
        hwmon: (it87) Use is_visible for voltage sensors
        hwmon: (it87) Rearrange code to avoid forward declarations
        hwmon: (it87) Add support for second Super-IO chip
        ...
      fdb8a291
    • L
      Merge tag 'edac_for_4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 1cc3880a
      Linus Torvalds 提交于
      Pull EDAC updates from Borislav Petkov:
       "It was pretty busy in EDAC land this time:
      
         - Altera Arria10 L2 cache and On-Chip RAM ECC handling (Thor Thayer)
      
         - Remove ad-hoc buffering of MCE records in sb_edac and i7core_edac
           (Tony Luck)
      
         - Do not register sb_edac with pci_register_driver() (Tony Luck)
      
         - Add support for Skylake to ie31200_edac (Jason Baron)
      
         - Do not register amd64_edac with pci_register_driver() (Borislav
           Petkov)
      
        ... plus the usual round of cleanups and fixes all over the place"
      
      * tag 'edac_for_4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (25 commits)
        EDAC, amd64_edac: Drop pci_register_driver() use
        EDAC, ie31200_edac: Add Skylake support
        EDAC, sb_edac: Use cpu family/model in driver detection
        EDAC, i7core: Remove double buffering of error records
        EDAC, amd64_edac: Issue driver banner only on success
        ARM: socfpga: Initialize Arria10 OCRAM ECC on startup
        EDAC: Increment correct counter in edac_inc_ue_error()
        EDAC, sb_edac: Remove double buffering of error records
        EDAC: Fix used after kfree() error in edac_unregister_sysfs()
        EDAC, altera: Avoid unused function warnings
        EDAC, altera: Remove useless casts
        ARM: socfpga: Enable Arria10 OCRAM ECC on startup
        EDAC, altera: Add Arria10 OCRAM ECC support
        Documentation: dt: socfpga: Add Altera Arria10 OCRAM binding
        EDAC, altera: Make OCRAM ECC dependency check generic
        EDAC, altera: Add register offset for ECC Enable
        EDAC, altera: Extract error inject operations to a struct fops
        ARM: socfpga: Enable Arria10 L2 cache ECC on startup
        EDAC, altera: Add Arria10 L2 Cache ECC handling
        Documentation, dt, socfpga: Add Altera Arria10 L2 cache binding
        ...
      1cc3880a
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds · 490e1422
      Linus Torvalds 提交于
      Pull LED updates from Jacek Anaszewski:
       "In this merge cycle we had an interaction with MTD subsystem, that
        included converting drivers/mtd/nand/nand_base.c to use newly
        introduced MTD (NAND/NOR) LED trigger instead of implementing it on
        its own.
      
        Related MTD patches are intended to be merged through the LED tree,
        before MTD tree is merged, since further MTD development is based on
        those modifications.
      
        Summary:
      
        LEDs:
         - Introduce a kernel panic LED trigger
      
         - Introduce a MTD (NAND/NOR) trigger
      
         - led-tca6507: silence an uninitialized variable warning
      
         - ledtrig-ide-disk: Move ide_blink_delay to ledtrig_ide_activity()
      
         - leds-ss4200: Add depend on x86 arch
      
         - leds-ss4200: add DMI data for FSC SCALEO Home Server
      
         - leds-triggers: Allow to switch the trigger to "panic" on a kernel panic
      
         - devicetree: leds: Introduce "panic-indicator" optional property
      
         - leds-gpio: Support the "panic-indicator" firmware property
      
        MTD:
         - Uninline mtd_write_oob and move it to mtdcore.c
      
         - Remove the "nand-disk" LED trigger
      
         - Hook I/O activity to the MTD LED trigger"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: gpio: Support the "panic-indicator" firmware property
        devicetree: leds: Introduce "panic-indicator" optional property
        leds: triggers: Allow to switch the trigger to "panic" on a kernel panic
        leds: ss4200: add DMI data for FSC SCALEO Home Server
        leds: ss4200: Add depend on x86 arch
        leds: ledtrig-ide-disk: Move ide_blink_delay to ledtrig_ide_activity()
        leds: tca6507: silence an uninitialized variable warning
        mtd: Hook I/O activity to the MTD LED trigger
        mtd: nand: Remove the "nand-disk" LED trigger
        leds: trigger: Introduce a MTD (NAND/NOR) trigger
        mtd: Uninline mtd_write_oob and move it to mtdcore.c
        leds: trigger: Introduce a kernel panic LED trigger
      490e1422
    • C
      ipmi: Fix the I2C address extraction from SPMI tables · 70f95b76
      Corey Minyard 提交于
      Unlike everywhere else in the IPMI specification, the I2C address
      specified in the SPMI table is not shifted to the left one bit with
      the LSB zero.  Instead it is not shifted with the MSB zero.
      Reported-by: NSanjeev <singhsan@codeaurora.org>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      70f95b76
    • C
      IPMI: reserve memio regions separately · 57a38f13
      Corey Minyard 提交于
      Commit d61a3ead ("[PATCH] IPMI: reserve I/O ports separately")
      changed the way I/O ports were reserved and includes this comment in
      log:
      
       Some BIOSes reserve disjoint I/O regions in their ACPI tables for the IPMI
       controller.  This causes problems when trying to register the entire I/O
       region.  Therefore we must register each I/O port separately.
      
      There is a similar problem with memio regions on an arm64 platform
      (AMD Seattle). Where I see:
      
       ipmi message handler version 39.2
       ipmi_si AMDI0300:00: probing via device tree
       ipmi_si AMDI0300:00: ipmi_si: probing via ACPI
       ipmi_si AMDI0300:00: [mem 0xe0010000] regsize 1 spacing 4 irq 23
       ipmi_si: Adding ACPI-specified kcs state machine
       IPMI System Interface driver.
       ipmi_si: Trying ACPI-specified kcs state machine at mem \
                address 0xe0010000, slave address 0x0, irq 23
       ipmi_si: Could not set up I/O space
      
      The problem is that the ACPI core registers disjoint regions for the
      platform device:
      
      e0010000-e0010000 : AMDI0300:00
      e0010004-e0010004 : AMDI0300:00
      
      and the ipmi_si driver tries to register one region e0010000-e0010004.
      
      Based on a patch from Mark Salter <msalter@redhat.com>, who also wrote
      all the above text.
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Tested-by: NMark Salter <msalter@redhat.com>
      57a38f13
    • C
      ipmi: Fix some minor coding style issues · 76824852
      Corey Minyard 提交于
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      76824852
    • L
      Merge tag 'arm64-perf' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · b6ae4055
      Linus Torvalds 提交于
      Pull arm64 perf updates from Will Deacon:
       "The main addition here is support for Broadcom's Vulcan core using the
        architected ID registers for discovering supported events.
      
         - Support for the PMU in Broadcom's Vulcan CPU
      
         - Dynamic event detection using the PMCEIDn_EL0 ID registers"
      
      * tag 'arm64-perf' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: perf: don't expose CHAIN event in sysfs
        arm64/perf: Add Broadcom Vulcan PMU support
        arm64/perf: Filter common events based on PMCEIDn_EL0
        arm64/perf: Access pmu register using <read/write>_sys_reg
        arm64/perf: Define complete ARMv8 recommended implementation defined events
        arm64/perf: Changed events naming as per the ARM ARM
        arm64: dts: Add Broadcom Vulcan PMU in dts
        Documentation: arm64: pmu: Add Broadcom Vulcan PMU binding
      b6ae4055
    • L
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · be092017
      Linus Torvalds 提交于
      Pull arm64 updates from Will Deacon:
      
       - virt_to_page/page_address optimisations
      
       - support for NUMA systems described using device-tree
      
       - support for hibernate/suspend-to-disk
      
       - proper support for maxcpus= command line parameter
      
       - detection and graceful handling of AArch64-only CPUs
      
       - miscellaneous cleanups and non-critical fixes
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (92 commits)
        arm64: do not enforce strict 16 byte alignment to stack pointer
        arm64: kernel: Fix incorrect brk randomization
        arm64: cpuinfo: Missing NULL terminator in compat_hwcap_str
        arm64: secondary_start_kernel: Remove unnecessary barrier
        arm64: Ensure pmd_present() returns false after pmd_mknotpresent()
        arm64: Replace hard-coded values in the pmd/pud_bad() macros
        arm64: Implement pmdp_set_access_flags() for hardware AF/DBM
        arm64: Fix typo in the pmdp_huge_get_and_clear() definition
        arm64: mm: remove unnecessary EXPORT_SYMBOL_GPL
        arm64: always use STRICT_MM_TYPECHECKS
        arm64: kvm: Fix kvm teardown for systems using the extended idmap
        arm64: kaslr: increase randomization granularity
        arm64: kconfig: drop CONFIG_RTC_LIB dependency
        arm64: make ARCH_SUPPORTS_DEBUG_PAGEALLOC depend on !HIBERNATION
        arm64: hibernate: Refuse to hibernate if the boot cpu is offline
        arm64: kernel: Add support for hibernate/suspend-to-disk
        PM / Hibernate: Call flush_icache_range() on pages restored in-place
        arm64: Add new asm macro copy_page
        arm64: Promote KERNEL_START/KERNEL_END definitions to a header file
        arm64: kernel: Include _AC definition in page.h
        ...
      be092017
    • L
      Merge tag 'm68k-for-v4.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · fb6363e9
      Linus Torvalds 提交于
      Pull m68k updates from Geert Uytterhoeven:
       "Preparatory work for Arnd's genrtc removal series"
      
      * tag 'm68k-for-v4.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k/mvme16x: Include generic <linux/rtc.h>
        m68k/bvme6000: Include generic <linux/rtc.h>
      fb6363e9
    • L
      Merge tag 'metag-for-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag · ce6a01c2
      Linus Torvalds 提交于
      Pull metag architecture updates from James Hogan:
       "Three minor fixes:
      
         - removal of stale comment
         - fix build for Meta1 when perf events are enabled
         - fix inline asm constraint in atomics"
      
      * tag 'metag-for-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
        metag: Fix atomic_*_return inline asm constraints
        metag: perf: fix build on Meta1
        metag: ftrace: remove the misleading comment for ftrace_dyn_arch_init
      ce6a01c2
    • L
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bc231d9e
      Linus Torvalds 提交于
      Pull x86 platform updates from Ingo Molnar:
       "The main change is the addition of SGI/UV4 support"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        x86/platform/UV: Fix incorrect nodes and pnodes for cpuless and memoryless nodes
        x86/platform/UV: Remove Obsolete GRU MMR address translation
        x86/platform/UV: Update physical address conversions for UV4
        x86/platform/UV: Build GAM reference tables
        x86/platform/UV: Support UV4 socket address changes
        x86/platform/UV: Add obtaining GAM Range Table from UV BIOS
        x86/platform/UV: Add UV4 addressing discovery function
        x86/platform/UV: Fold blade info into per node hub info structs
        x86/platform/UV: Allocate common per node hub info structs on local node
        x86/platform/UV: Move blade local processor ID to the per cpu info struct
        x86/platform/UV: Move scir info to the per cpu info struct
        x86/platform/UV: Create per cpu info structs to replace per hub info structs
        x86/platform/UV: Update MMIOH setup function to work for both UV3 and UV4
        x86/platform/UV: Clean up redunduncies after merge of UV4 MMR definitions
        x86/platform/UV: Add UV4 Specific MMR definitions
        x86/platform/UV: Prep for UV4 MMR updates
        x86/platform/UV: Add UV MMR Illegal Access Function
        x86/platform/UV: Add UV4 Specific Defines
        x86/platform/UV: Add UV Architecture Defines
        x86/platform/UV: Add Initial UV4 definitions
        ...
      bc231d9e
    • L
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 62a00278
      Linus Torvalds 提交于
      Pull x86 debug cleanup from Ingo Molnar:
       "A printk() output simplification"
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/dumpstack: Combine some printk()s
      62a00278
    • L
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bcea36df
      Linus Torvalds 提交于
      Pull x86 cleanup from Ingo Molnar:
       "Inline optimizations"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Fix non-static inlines
      bcea36df
    • L
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 05e30f01
      Linus Torvalds 提交于
      Pull x86-64 defconfig update from Ingo Molnar:
       "Small defconfig addition"
      
      [ I'm not actually convinced our defconfig is sensible, but whatever ]
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/build/defconfig/64: Enable CONFIG_E1000E=y
      05e30f01
    • L
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9a45f036
      Linus Torvalds 提交于
      Pull x86 boot updates from Ingo Molnar:
       "The biggest changes in this cycle were:
      
         - prepare for more KASLR related changes, by restructuring, cleaning
           up and fixing the existing boot code.  (Kees Cook, Baoquan He,
           Yinghai Lu)
      
         - simplifly/concentrate subarch handling code, eliminate
           paravirt_enabled() usage.  (Luis R Rodriguez)"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (50 commits)
        x86/KASLR: Clarify purpose of each get_random_long()
        x86/KASLR: Add virtual address choosing function
        x86/KASLR: Return earliest overlap when avoiding regions
        x86/KASLR: Add 'struct slot_area' to manage random_addr slots
        x86/boot: Add missing file header comments
        x86/KASLR: Initialize mapping_info every time
        x86/boot: Comment what finalize_identity_maps() does
        x86/KASLR: Build identity mappings on demand
        x86/boot: Split out kernel_ident_mapping_init()
        x86/boot: Clean up indenting for asm/boot.h
        x86/KASLR: Improve comments around the mem_avoid[] logic
        x86/boot: Simplify pointer casting in choose_random_location()
        x86/KASLR: Consolidate mem_avoid[] entries
        x86/boot: Clean up pointer casting
        x86/boot: Warn on future overlapping memcpy() use
        x86/boot: Extract error reporting functions
        x86/boot: Correctly bounds-check relocations
        x86/KASLR: Clean up unused code from old 'run_size' and rename it to 'kernel_total_size'
        x86/boot: Fix "run_size" calculation
        x86/boot: Calculate decompression size during boot not build
        ...
      9a45f036
    • L
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 168f1a71
      Linus Torvalds 提交于
      Pull x86 asm updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - MSR access API fixes and enhancements (Andy Lutomirski)
      
         - early exception handling improvements (Andy Lutomirski)
      
         - user-space FS/GS prctl usage fixes and improvements (Andy
           Lutomirski)
      
         - Remove the cpu_has_*() APIs and replace them with equivalents
           (Borislav Petkov)
      
         - task switch micro-optimization (Brian Gerst)
      
         - 32-bit entry code simplification (Denys Vlasenko)
      
         - enhance PAT handling in enumated CPUs (Toshi Kani)
      
        ... and lots of other cleanups/fixlets"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (70 commits)
        x86/arch_prctl/64: Restore accidentally removed put_cpu() in ARCH_SET_GS
        x86/entry/32: Remove asmlinkage_protect()
        x86/entry/32: Remove GET_THREAD_INFO() from entry code
        x86/entry, sched/x86: Don't save/restore EFLAGS on task switch
        x86/asm/entry/32: Simplify pushes of zeroed pt_regs->REGs
        selftests/x86/ldt_gdt: Test set_thread_area() deletion of an active segment
        x86/tls: Synchronize segment registers in set_thread_area()
        x86/asm/64: Rename thread_struct's fs and gs to fsbase and gsbase
        x86/arch_prctl/64: Remove FSBASE/GSBASE < 4G optimization
        x86/segments/64: When load_gs_index fails, clear the base
        x86/segments/64: When loadsegment(fs, ...) fails, clear the base
        x86/asm: Make asm/alternative.h safe from assembly
        x86/asm: Stop depending on ptrace.h in alternative.h
        x86/entry: Rename is_{ia32,x32}_task() to in_{ia32,x32}_syscall()
        x86/asm: Make sure verify_cpu() has a good stack
        x86/extable: Add a comment about early exception handlers
        x86/msr: Set the return value to zero when native_rdmsr_safe() fails
        x86/paravirt: Make "unsafe" MSR accesses unsafe even if PARAVIRT=y
        x86/paravirt: Add paravirt_{read,write}_msr()
        x86/msr: Carry on after a non-"safe" MSR access fails
        ...
      168f1a71
    • L
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 825a3b26
      Linus Torvalds 提交于
      Pull scheduler updates from Ingo Molnar:
      
       - massive CPU hotplug rework (Thomas Gleixner)
      
       - improve migration fairness (Peter Zijlstra)
      
       - CPU load calculation updates/cleanups (Yuyang Du)
      
       - cpufreq updates (Steve Muckle)
      
       - nohz optimizations (Frederic Weisbecker)
      
       - switch_mm() micro-optimization on x86 (Andy Lutomirski)
      
       - ... lots of other enhancements, fixes and cleanups.
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (66 commits)
        ARM: Hide finish_arch_post_lock_switch() from modules
        sched/core: Provide a tsk_nr_cpus_allowed() helper
        sched/core: Use tsk_cpus_allowed() instead of accessing ->cpus_allowed
        sched/loadavg: Fix loadavg artifacts on fully idle and on fully loaded systems
        sched/fair: Correct unit of load_above_capacity
        sched/fair: Clean up scale confusion
        sched/nohz: Fix affine unpinned timers mess
        sched/fair: Fix fairness issue on migration
        sched/core: Kill sched_class::task_waking to clean up the migration logic
        sched/fair: Prepare to fix fairness problems on migration
        sched/fair: Move record_wakee()
        sched/core: Fix comment typo in wake_q_add()
        sched/core: Remove unused variable
        sched: Make hrtick_notifier an explicit call
        sched/fair: Make ilb_notifier an explicit call
        sched/hotplug: Make activate() the last hotplug step
        sched/hotplug: Move migration CPU_DYING to sched_cpu_dying()
        sched/migration: Move CPU_ONLINE into scheduler state
        sched/migration: Move calc_load_migrate() into CPU_DYING
        sched/migration: Move prepare transition to SCHED_STARTING state
        ...
      825a3b26
    • L
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cf6ed9a6
      Linus Torvalds 提交于
      Pull RAS updates from Ingo Molnar:
       "Main changes in this cycle were:
      
         - AMD MCE/RAS handling updates (Yazen Ghannam, Aravind
           Gopalakrishnan)
      
         - Cleanups (Borislav Petkov)
      
         - logging fix (Tony Luck)"
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/RAS: Add SMCA support to AMD Error Injector
        EDAC, mce_amd: Detect SMCA using X86_FEATURE_SMCA
        x86/mce: Update AMD mcheck init to use cpu_has() facilities
        x86/cpu: Add detection of AMD RAS Capabilities
        x86/mce/AMD: Save an indentation level in prepare_threshold_block()
        x86/mce/AMD: Disable LogDeferredInMcaStat for SMCA systems
        x86/mce/AMD: Log Deferred Errors using SMCA MCA_DE{STAT,ADDR} registers
        x86/mce: Detect local MCEs properly
        x86/mce: Look in genpool instead of mcelog for pending error records
        x86/mce: Detect and use SMCA-specific msr_ops
        x86/mce: Define vendor-specific MSR accessors
        x86/mce: Carve out writes to MCx_STATUS and MCx_CTL
        x86/mce: Grade uncorrected errors for SMCA-enabled systems
        x86/mce: Log MCEs after a warm rest on AMD, Fam17h and later
        x86/mce: Remove explicit smp_rmb() when starting CPUs sync
        x86/RAS: Rename AMD MCE injector config item
      cf6ed9a6
    • L
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 36db171c
      Linus Torvalds 提交于
      Pull perf updates from Ingo Molnar:
       "Bigger kernel side changes:
      
         - Add backwards writing capability to the perf ring-buffer code,
           which is preparation for future advanced features like robust
           'overwrite support' and snapshot mode.  (Wang Nan)
      
         - Add pause and resume ioctls for the perf ringbuffer (Wang Nan)
      
         - x86 Intel cstate code cleanups and reorgnization (Thomas Gleixner)
      
         - x86 Intel uncore and CPU PMU driver updates (Kan Liang, Peter
           Zijlstra)
      
         - x86 AUX (Intel PT) related enhancements and updates (Alexander
           Shishkin)
      
         - x86 MSR PMU driver enhancements and updates (Huang Rui)
      
         - ... and lots of other changes spread out over 40+ commits.
      
        Biggest tooling side changes:
      
         - 'perf trace' features and enhancements.  (Arnaldo Carvalho de Melo)
      
         - BPF tooling updates (Wang Nan)
      
         - 'perf sched' updates (Jiri Olsa)
      
         - 'perf probe' updates (Masami Hiramatsu)
      
         - ... plus 200+ other enhancements, fixes and cleanups to tools/
      
        The merge commits, the shortlog and the changelogs contain a lot more
        details"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (249 commits)
        perf/core: Disable the event on a truncated AUX record
        perf/x86/intel/pt: Generate PMI in the STOP region as well
        perf buildid-cache: Use lsdir() for looking up buildid caches
        perf symbols: Use lsdir() for the search in kcore cache directory
        perf tools: Use SBUILD_ID_SIZE where applicable
        perf tools: Fix lsdir to set errno correctly
        perf trace: Move seccomp args beautifiers to tools/perf/trace/beauty/
        perf trace: Move flock op beautifier to tools/perf/trace/beauty/
        perf build: Add build-test for debug-frame on arm/arm64
        perf build: Add build-test for libunwind cross-platforms support
        perf script: Fix export of callchains with recursion in db-export
        perf script: Fix callchain addresses in db-export
        perf script: Fix symbol insertion behavior in db-export
        perf symbols: Add dso__insert_symbol function
        perf scripting python: Use Py_FatalError instead of die()
        perf tools: Remove xrealloc and ALLOC_GROW
        perf help: Do not use ALLOC_GROW in add_cmd_list
        perf pmu: Make pmu_formats_string to check return value of strbuf
        perf header: Make topology checkers to check return value of strbuf
        perf tools: Make alias handler to check return value of strbuf
        ...
      36db171c
    • L
      Merge branch 'locking-rwsem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3469d261
      Linus Torvalds 提交于
      Pull support for killable rwsems from Ingo Molnar:
       "This, by Michal Hocko, implements down_write_killable().
      
        The main usecase will be to update mm_sem usage sites to use this new
        API, to allow the mm-reaper introduced in commit aac45363 ("mm,
        oom: introduce oom reaper") to tear down oom victim address spaces
        asynchronously with minimum latencies and without deadlock worries"
      
      [ The vfs will want it too as the inode lock is changed from a mutex to
        a rwsem due to the parallel lookup and readdir updates ]
      
      * 'locking-rwsem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/rwsem: Fix comment on register clobbering
        locking/rwsem: Fix down_write_killable()
        locking/rwsem, x86: Add frame annotation for call_rwsem_down_write_failed_killable()
        locking/rwsem: Provide down_write_killable()
        locking/rwsem, x86: Provide __down_write_killable()
        locking/rwsem, s390: Provide __down_write_killable()
        locking/rwsem, ia64: Provide __down_write_killable()
        locking/rwsem, alpha: Provide __down_write_killable()
        locking/rwsem: Introduce basis for down_write_killable()
        locking/rwsem, sparc: Drop superfluous arch specific implementation
        locking/rwsem, sh: Drop superfluous arch specific implementation
        locking/rwsem, xtensa: Drop superfluous arch specific implementation
        locking/rwsem: Drop explicit memory barriers
        locking/rwsem: Get rid of __down_write_nested()
      3469d261
    • L
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1c19b68a
      Linus Torvalds 提交于
      Pull locking changes from Ingo Molnar:
       "The main changes in this cycle were:
      
         - pvqspinlock statistics fixes (Davidlohr Bueso)
      
         - flip atomic_fetch_or() arguments (Peter Zijlstra)
      
         - locktorture simplification (Paul E.  McKenney)
      
         - documentation updates (SeongJae Park, David Howells, Davidlohr
           Bueso, Paul E McKenney, Peter Zijlstra, Will Deacon)
      
         - various fixes"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/atomics: Flip atomic_fetch_or() arguments
        locking/pvqspinlock: Robustify init_qspinlock_stat()
        locking/pvqspinlock: Avoid double resetting of stats
        lcoking/locktorture: Simplify the torture_runnable computation
        locking/Documentation: Clarify that ACQUIRE applies to loads, RELEASE applies to stores
        locking/Documentation: State purpose of memory-barriers.txt
        locking/Documentation: Add disclaimer
        locking/Documentation/lockdep: Fix spelling mistakes
        locking/lockdep: Deinline register_lock_class(), save 2328 bytes
        locking/locktorture: Fix NULL pointer dereference for cleanup paths
        locking/locktorture: Fix deboosting NULL pointer dereference
        locking/Documentation: Mention smp_cond_acquire()
        locking/Documentation: Insert white spaces consistently
        locking/Documentation: Fix formatting inconsistencies
        locking/Documentation: Add missed subsection in TOC
        locking/Documentation: Fix missed s/lock/acquire renames
        locking/Documentation: Clarify relationship of barrier() to control dependencies
      1c19b68a
    • L
      Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 49817c33
      Linus Torvalds 提交于
      Pull EFI updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - Drop the unused EFI_SYSTEM_TABLES efi.flags bit and ensure the
           ARM/arm64 EFI System Table mapping is read-only (Ard Biesheuvel)
      
         - Add a comment to explain that one of the code paths in the x86/pat
           code is only executed for EFI boot (Matt Fleming)
      
         - Improve Secure Boot status checks on arm64 and handle unexpected
           errors (Linn Crosetto)
      
         - Remove the global EFI memory map variable 'memmap' as the same
           information is already available in efi::memmap (Matt Fleming)
      
         - Add EFI Memory Attribute table support for ARM/arm64 (Ard
           Biesheuvel)
      
         - Add EFI GOP framebuffer support for ARM/arm64 (Ard Biesheuvel)
      
         - Add EFI Bootloader Control driver for storing reboot(2) data in EFI
           variables for consumption by bootloaders (Jeremy Compostella)
      
         - Add Core EFI capsule support (Matt Fleming)
      
         - Add EFI capsule char driver (Kweh, Hock Leong)
      
         - Unify EFI memory map code for ARM and arm64 (Ard Biesheuvel)
      
         - Add generic EFI support for detecting when firmware corrupts CPU
           status register bits (like IRQ flags) when performing EFI runtime
           service calls (Mark Rutland)
      
        ... and other misc cleanups"
      
      * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
        efivarfs: Make efivarfs_file_ioctl() static
        efi: Merge boolean flag arguments
        efi/capsule: Move 'capsule' to the stack in efi_capsule_supported()
        efibc: Fix excessive stack footprint warning
        efi/capsule: Make efi_capsule_pending() lockless
        efi: Remove unnecessary (and buggy) .memmap initialization from the Xen EFI driver
        efi/runtime-wrappers: Remove ARCH_EFI_IRQ_FLAGS_MASK #ifdef
        x86/efi: Enable runtime call flag checking
        arm/efi: Enable runtime call flag checking
        arm64/efi: Enable runtime call flag checking
        efi/runtime-wrappers: Detect firmware IRQ flag corruption
        efi/runtime-wrappers: Remove redundant #ifdefs
        x86/efi: Move to generic {__,}efi_call_virt()
        arm/efi: Move to generic {__,}efi_call_virt()
        arm64/efi: Move to generic {__,}efi_call_virt()
        efi/runtime-wrappers: Add {__,}efi_call_virt() templates
        efi/arm-init: Reserve rather than unmap the memory map for ARM as well
        efi: Add misc char driver interface to update EFI firmware
        x86/efi: Force EFI reboot to process pending capsules
        efi: Add 'capsule' update support
        ...
      49817c33
    • L
      Merge branch 'core-signals-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 230e51f2
      Linus Torvalds 提交于
      Pull core signal updates from Ingo Molnar:
       "These updates from Stas Sergeev and Andy Lutomirski, improve the
        sigaltstack interface by extending its ABI with the SS_AUTODISARM
        feature, which makes it possible to use swapcontext() in a sighandler
        that works on sigaltstack.  Without this flag, the subsequent signal
        will corrupt the state of the switched-away sighandler.
      
        The inspiration is more robust dosemu signal handling"
      
      * 'core-signals-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        signals/sigaltstack: Change SS_AUTODISARM to (1U << 31)
        signals/sigaltstack: Report current flag bits in sigaltstack()
        selftests/sigaltstack: Fix the sigaltstack test on old kernels
        signals/sigaltstack: If SS_AUTODISARM, bypass on_sig_stack()
        selftests/sigaltstack: Add new testcase for sigaltstack(SS_ONSTACK|SS_AUTODISARM)
        signals/sigaltstack: Implement SS_AUTODISARM flag
        signals/sigaltstack: Prepare to add new SS_xxx flags
        signals/sigaltstack, x86/signals: Unify the x86 sigaltstack check with other architectures
      230e51f2
    • L
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a3871bd4
      Linus Torvalds 提交于
      Pull RCU updates from Ingo Molnar:
       "The main changes are:
      
         - Documentation updates, including fixes to the design-level
           requirements documentation and a fixed version of the design-level
           data-structure documentation.  These fixes include removing
           cartoons and getting rid of the html/htmlx duplication.
      
         - Further improvements to the new-age expedited grace periods.
      
         - Miscellaneous fixes.
      
         - Torture-test changes, including a new rcuperf module for measuring
           RCU grace-period performance and scalability, which is useful for
           the expedited-grace-period changes"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (56 commits)
        rcutorture: Add boot-time adjustment of leaf fanout
        rcutorture: Add irqs-disabled test for call_rcu()
        rcutorture: Dump trace buffer upon shutdown
        rcutorture: Don't rebuild identical kernel
        rcutorture: Add OS-jitter capability
        documentation: Add documentation for RCU's major data structures
        rcutorture: Convert test duration to seconds early
        torture: Kill qemu, not parent process
        torture: Clarify refusal to run more than one torture test
        rcutorture: Consider FROZEN hotplug notifier transitions
        rcutorture: Remove redundant initialization to zero
        rcuperf: Do not wake up shutdown wait queue if "shutdown" is false.
        rcutorture: Add largish-system rcuperf scenario
        rcutorture: Avoid RCU CPU stall warning and RT throttling
        rcutorture: Add rcuperf holdoff boot parameter to reduce interference
        rcutorture: Make scripts analyze rcuperf trace data, if present
        rcutorture: Make rcuperf collect expedited event-trace data
        rcutorture: Print measure of batching efficiency
        rcutorture: Set rcuperf writer kthreads to real-time priority
        rcutorture: Bind rcuperf reader/writer kthreads to CPUs
        ...
      a3871bd4