1. 09 Jul, 2019 28 commits
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 6b04014f
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - Make the dma-iommu code more generic so that it can be used outside
         of the ARM context with other IOMMU drivers. Goal is to make use of
         it on x86 too.
      
       - Generic IOMMU domain support for the Intel VT-d driver. This driver
         now makes more use of common IOMMU code to allocate default domains
         for the devices it handles.
      
       - An IOMMU fault reporting API to userspace. With that the IOMMU fault
         handling can be done in user-space, for example to forward the faults
         to a VM.
      
       - Better handling for reserved regions requested by the firmware. These
         can be 'relaxed' now, meaning that those don't prevent a device being
         attached to a VM.
      
       - Suspend/Resume support for the Renesas IOMMU driver.
      
       - Added support for dumping SVA related fields of the DMAR table in the
         Intel VT-d driver via debugfs.
      
       - A pile of smaller fixes and cleanups.
      
      * tag 'iommu-updates-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (90 commits)
        iommu/omap: No need to check return value of debugfs_create functions
        iommu/arm-smmu-v3: Invalidate ATC when detaching a device
        iommu/arm-smmu-v3: Fix compilation when CONFIG_CMA=n
        iommu/vt-d: Cleanup unused variable
        iommu/amd: Flush not present cache in iommu_map_page
        iommu/amd: Only free resources once on init error
        iommu/amd: Move gart fallback to amd_iommu_init
        iommu/amd: Make iommu_disable safer
        iommu/io-pgtable: Support non-coherent page tables
        iommu/io-pgtable: Replace IO_PGTABLE_QUIRK_NO_DMA with specific flag
        iommu/io-pgtable-arm: Add support to use system cache
        iommu/arm-smmu-v3: Increase maximum size of queues
        iommu/vt-d: Silence a variable set but not used
        iommu/vt-d: Remove an unused variable "length"
        iommu: Fix integer truncation
        iommu: Add padding to struct iommu_fault
        iommu/vt-d: Consolidate domain_init() to avoid duplication
        iommu/vt-d: Cleanup after delegating DMA domain to generic iommu
        iommu/vt-d: Fix suspicious RCU usage in probe_acpi_namespace_devices()
        iommu/vt-d: Allow DMA domain attaching to rmrr locked device
        ...
      6b04014f
    • Linus Torvalds's avatar
      Merge tag 'spi-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · c6b6cebb
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "For the most part this is a quiet release for SPI, though there's
        several of the more widely used drivers that have had some fairly
        substantial development done on them, mainly improving performance and
        adding support for some more obscure use cases.
      
        Summary:
      
         - Support for configuring a minimum time for chip select to be
           deasserted between transfers from Martin Sperl.
      
         - A rework of the ACPI device instantiation code from Ard Biesheuvel.
      
         - Fairly substantial development on the AT91 USART, BCM2835 and
           Tegra114 drivers.
      
         - New driver for Socionext SynQuacer"
      
      * tag 'spi-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (58 commits)
        spi: pxa2xx: Add support for Intel Elkhart Lake
        spi: atmel-quadspi: fix resume call
        spi: atmel-quadspi: void return type for atmel_qspi_init()
        spi: pxa2xx: Set minimum transfer speed
        spi: stm32-qspi: remove signal sensitive on completion
        dt-bindings: spi: stm32-qspi: add dma properties
        spi: uniphier: fix zero-length transfer
        spi: uniphier: fix timeout error
        spi/acpi: avoid spurious matches during slave enumeration
        spi: spi-stm32-qspi: Remove CR_FTHRES_MASK usage
        spi: fix ctrl->num_chipselect constraint
        spi: spi-synquacer: Fixed build on architectures missing readsl/writesl series
        spi/acpi: fix incorrect ACPI parent check
        spi: don't open code list_for_each_entry_safe_reverse()
        spi: No need to assign dummy value in spi_unregister_controller()
        spi: Add a prototype for exported spi_set_cs_timing()
        spi/acpi: enumerate all SPI slaves in the namespace
        spi: qup: fix PIO/DMA transfers.
        spi: Use struct_size() helper
        spi: mediatek: add SPI_LSB_FIRST support
        ...
      c6b6cebb
    • Linus Torvalds's avatar
      Merge tag 'regulator-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 98537ee9
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "A couple of new features in the core, the most interesting one being
        support for complex regulator coupling configurations initially
        targeted at nVidia Tegra SoCs, and some new drivers but otherwise
        quite a quiet release.
      
        Summary:
      
         - Core support for gradual ramping of voltages for devices that can't
           manage large changes in hardware from Bartosz Golaszewski.
      
         - Core support for systems that have complex coupling requirements
           best described via code, contributed by Dmitry Osipenko.
      
         - New drivers for Dialog SLG51000, Qualcomm PM8005 and ST
           Microelectronics STM32-Booster"
      
      * tag 'regulator-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (52 commits)
        regulator: max77650: use vsel_step
        regulator: implement selector stepping
        regulator: max77650: add MODULE_ALIAS()
        regulator: max77620: remove redundant assignment to variable ret
        dt-bindings: regulator: add support for the stm32-booster
        regulator: add support for the stm32-booster
        regulator: s2mps11: Adjust supported buck voltages to real values
        regulator: s2mps11: Fix buck7 and buck8 wrong voltages
        gpio: Fix return value mismatch of function gpiod_get_from_of_node()
        regulator: core: Expose some of core functions needed by couplers
        regulator: core: Introduce API for regulators coupling customization
        regulator: s2mps11: Add support for disabling S2MPS11 regulators in suspend
        regulator: s2mps11: Reduce number of rdev_get_id() calls
        regulator: qcom_spmi: Do NULL check for lvs
        regulator: qcom_spmi: Fix math of spmi_regulator_set_voltage_time_sel
        regulator: da9061/62: Adjust LDO voltage selection minimum value
        regulator: s2mps11: Fix ERR_PTR dereference on GPIO lookup failure
        regulator: qcom_spmi: add PMS405 SPMI regulator
        dt-bindings: qcom_spmi: Document pms405 support
        arm64: dts: msm8998-mtp: Add pm8005_s1 regulator
        ...
      98537ee9
    • Linus Torvalds's avatar
      Merge tag 'regmap-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 12a5146b
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "This is a relatively busy release for regmap, though not busy in the
        grand scheme of things, with the addition of support for I3C from
        Vitor Soares and a few small fixes and cleanups"
      
      * tag 'regmap-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: select CONFIG_REGMAP while REGMAP_SCCB is set
        regmap: lzo: Switch to bitmap_zalloc()
        regmap: fix bulk writes on paged registers
        regmap: add i3c bus support
        regmap: debugfs: Fix memory leak in regmap_debugfs_init
      12a5146b
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 2ec98f56
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the big slew of GPIO changes for the v5.3 kernel cycle. This
        is mostly incremental work this time.
      
        Three important things:
      
         - The FMC subsystem is deleted through my tree. This happens through
           GPIO as its demise was discussed in relation to a patch decoupling
           its GPIO implementation from the standard way of handling GPIO. As
           it turns out, that is not the only subsystem it reimplements and
           the authors think it is better do scratch it and start over using
           the proper kernel subsystems than try to polish the rust shiny. See
           the commit (ACKed by the maintainers) for details.
      
         - Arnd made a small devres patch that was ACKed by Greg and goes into
           the device core.
      
         - SPDX header change colissions may happen, because at times I've
           seen that quite a lot changed during the -rc:s in regards to SPDX.
           (It is good stuff, tglx has me convinced, and it is worth the
           occasional pain.)
      
        Apart from this is is nothing controversial or problematic.
      
        Summary:
      
        Core:
      
         - When a gpio_chip request GPIOs from itself, it can now fully
           control the line characteristics, both machine and consumer flags.
           This makes a lot of sense, but took some time before I figured out
           that this is how it has to work.
      
         - Several smallish documentation fixes.
      
        New drivers:
      
         - The PCA953x driver now supports the TI TCA9539.
      
         - The DaVinci driver now supports the K3 AM654 SoCs.
      
        Driver improvements:
      
         - Major overhaul and hardening of the OMAP driver by Russell King.
      
         - Starting to move some drivers to the new API passing irq_chip along
           with the gpio_chip when adding the gpio_chip instead of adding it
           separately.
      
        Unrelated:
      
         - Delete the FMC subsystem"
      
      * tag 'gpio-v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (87 commits)
        Revert "gpio: tegra: Clean-up debugfs initialisation"
        gpiolib: Use spinlock_t instead of struct spinlock
        gpio: stp-xway: allow compile-testing
        gpio: stp-xway: get rid of the #include <lantiq_soc.h> dependency
        gpio: stp-xway: improve module clock error handling
        gpio: stp-xway: simplify error handling in xway_stp_probe()
        gpiolib: Clarify use of non-sleeping functions
        gpiolib: Fix references to gpiod_[gs]et_*value_cansleep() variants
        gpiolib: Document new gpio_chip.init_valid_mask field
        Documentation: gpio: Fix reference to gpiod_get_array()
        gpio: pl061: drop duplicate printing of device name
        gpio: altera: Pass irqchip when adding gpiochip
        gpio: siox: Use devm_ managed gpiochip
        gpio: siox: Add struct device *dev helper variable
        gpio: siox: Pass irqchip when adding gpiochip
        drivers: gpio: amd-fch: make resource struct const
        devres: allow const resource arguments
        gpio: ath79: Pass irqchip when adding gpiochip
        gpio: tegra: Clean-up debugfs initialisation
        gpio: siox: Switch to IRQ_TYPE_NONE
        ...
      2ec98f56
    • Linus Torvalds's avatar
      Merge tag 'i3c/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux · 96407298
      Linus Torvalds authored
      Pull ic3 updates from Boris Brezillon:
      
       - Drop support for 10-bit I2C addresses
      
       - Add support for limited bus mode
      
       - Fix the Cadence DT binding doc
      
       - Use struct_size() to allocate a DEFSLVS packet
      
      * tag 'i3c/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
        i3c: master: Use struct_size() helper
        dt-bindings: i3c: cdns: Use correct cells for I2C device
        i3c: dw: add limited bus mode support
        i3c: add mixed limited bus mode
        i3c: fix i2c and i3c scl rate by bus mode
        dt-bindings: i3c: Document dropped support for I2C 10 bit devices
        i3c: Drop support for I2C 10 bit addresing
      96407298
    • Linus Torvalds's avatar
      Merge tag 'leds-for-5.3-rc1' of... · 8a3367cc
      Linus Torvalds authored
      Merge tag 'leds-for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
      
      Pull LED updates from Jacek Anaszewski:
      
       - Add a new LED common module for ti-lmu driver family
      
       - Modify MFD ti-lmu bindings
              - add ti,brightness-resolution
              - add the ramp up/down property
      
       - Add regulator support for LM36274 driver to lm363x-regulator.c
      
       - New LED class drivers with DT bindings:
              - leds-spi-byte
              - leds-lm36274
              - leds-lm3697 (move the support from MFD to LED subsystem)
      
       - Simplify getting the I2C adapter of a client:
              - leds-tca6507
              - leds-pca955x
      
       - Convert LED documentation to ReST
      
      * tag 'leds-for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        dt: leds-lm36274.txt: fix a broken reference to ti-lmu.txt
        docs: leds: convert to ReST
        leds: leds-tca6507: simplify getting the adapter of a client
        leds: leds-pca955x: simplify getting the adapter of a client
        leds: lm36274: Introduce the TI LM36274 LED driver
        dt-bindings: leds: Add LED bindings for the LM36274
        regulator: lm363x: Add support for LM36274
        mfd: ti-lmu: Add LM36274 support to the ti-lmu
        dt-bindings: mfd: Add lm36274 bindings to ti-lmu
        leds: max77650: Remove set but not used variable 'parent'
        leds: avoid flush_work in atomic context
        leds: lm3697: Introduce the lm3697 driver
        mfd: ti-lmu: Remove support for LM3697
        dt-bindings: ti-lmu: Modify dt bindings for the LM3697
        leds: TI LMU: Add common code for TI LMU devices
        leds: spi-byte: add single byte SPI LED driver
        dt-bindings: leds: Add binding for spi-byte LED.
        dt-bindings: mfd: LMU: Add ti,brightness-resolution
        dt-bindings: mfd: LMU: Add the ramp up/down property
      8a3367cc
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-5.3-rc1' of... · 6e2bbb68
      Linus Torvalds authored
      Merge tag 'pwm/for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This set of changes contains a new driver for SiFive SoCs as well as
        enhancements to the core (device links are used to track dependencies
        between PWM providers and consumers, support for PWM controllers via
        ACPI, sysfs will now suspend/resume PWMs that it has claimed) and
        various existing drivers"
      
      * tag 'pwm/for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (37 commits)
        pwm: fsl-ftm: Make sure to unlock mutex on failure
        pwm: fsl-ftm: Use write protection for prescaler & polarity
        pwm: fsl-ftm: More relaxed permissions for updating period
        pwm: atmel-hlcdc: Add compatible for SAM9X60 HLCDC's PWM
        pwm: bcm2835: Improve precision of PWM
        leds: pwm: Support ACPI via firmware-node framework
        pwm: Add support referencing PWMs from ACPI
        pwm: rcar: Remove suspend/resume support
        pwm: sysfs: Add suspend/resume support
        pwm: Add power management descriptions
        pwm: meson: Add documentation to the driver
        pwm: meson: Add support PWM_POLARITY_INVERSED when disabling
        pwm: meson: Don't cache struct pwm_state internally
        pwm: meson: Read the full hardware state in meson_pwm_get_state()
        pwm: meson: Simplify the calculation of the pre-divider and count
        pwm: meson: Move pwm_set_chip_data() to meson_pwm_request()
        pwm: meson: Add the per-channel register offsets and bits in a struct
        pwm: meson: Add the meson_pwm_channel data to struct meson_pwm
        pwm: meson: Pass struct pwm_device to meson_pwm_calc()
        pwm: meson: Don't duplicate the polarity internally
        ...
      6e2bbb68
    • Linus Torvalds's avatar
      Merge branch 'siginfo-linus' of... · 5ad18b2e
      Linus Torvalds authored
      Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull force_sig() argument change from Eric Biederman:
       "A source of error over the years has been that force_sig has taken a
        task parameter when it is only safe to use force_sig with the current
        task.
      
        The force_sig function is built for delivering synchronous signals
        such as SIGSEGV where the userspace application caused a synchronous
        fault (such as a page fault) and the kernel responded with a signal.
      
        Because the name force_sig does not make this clear, and because the
        force_sig takes a task parameter the function force_sig has been
        abused for sending other kinds of signals over the years. Slowly those
        have been fixed when the oopses have been tracked down.
      
        This set of changes fixes the remaining abusers of force_sig and
        carefully rips out the task parameter from force_sig and friends
        making this kind of error almost impossible in the future"
      
      * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (27 commits)
        signal/x86: Move tsk inside of CONFIG_MEMORY_FAILURE in do_sigbus
        signal: Remove the signal number and task parameters from force_sig_info
        signal: Factor force_sig_info_to_task out of force_sig_info
        signal: Generate the siginfo in force_sig
        signal: Move the computation of force into send_signal and correct it.
        signal: Properly set TRACE_SIGNAL_LOSE_INFO in __send_signal
        signal: Remove the task parameter from force_sig_fault
        signal: Use force_sig_fault_to_task for the two calls that don't deliver to current
        signal: Explicitly call force_sig_fault on current
        signal/unicore32: Remove tsk parameter from __do_user_fault
        signal/arm: Remove tsk parameter from __do_user_fault
        signal/arm: Remove tsk parameter from ptrace_break
        signal/nds32: Remove tsk parameter from send_sigtrap
        signal/riscv: Remove tsk parameter from do_trap
        signal/sh: Remove tsk parameter from force_sig_info_fault
        signal/um: Remove task parameter from send_sigtrap
        signal/x86: Remove task parameter from send_sigtrap
        signal: Remove task parameter from force_sig_mceerr
        signal: Remove task parameter from force_sig
        signal: Remove task parameter from force_sigsegv
        ...
      5ad18b2e
    • Linus Torvalds's avatar
      Merge branch 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 92c1d652
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "Documentation updates and the addition of cgroup_parse_float() which
        will be used by new controllers including blk-iocost"
      
      * 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        docs: cgroup-v1: convert docs to ReST and rename to *.rst
        cgroup: Move cgroup_parse_float() implementation out of CONFIG_SYSFS
        cgroup: add cgroup_parse_float()
      92c1d652
    • Linus Torvalds's avatar
      Merge branch 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · df2a40f5
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "Just a couple cleanup patches.  No functional changes."
      
      * 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: Remove GPF argument from alloc_workqueue_attrs()
        workqueue: Make alloc/apply/free_workqueue_attrs() static
      df2a40f5
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 2b49350b
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - Add a "cut here" to make it clearer where oops dumps should be cut
         from - we already have a marker for the end of the dumps.
      
       - Add logging severity to show_pte()
      
       - Drop unnecessary common-page-size linker flag
      
       - Errata workarounds for Cortex A12 857271, Cortex A17 857272 and
         Cortex A7 814220.
      
       - Remove some unused variables that had started to provoke a compiler
         warning.
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 8863/1: stm32: select ARM errata 814220
        ARM: 8862/1: errata: 814220-B-Cache maintenance by set/way operations can execute out of order
        ARM: 8865/1: mm: remove unused variables
        ARM: 8864/1: Add workaround for I-Cache line size mismatch between CPU cores
        ARM: 8861/1: errata: Workaround errata A12 857271 / A17 857272
        ARM: 8860/1: VDSO: Drop implicit common-page-size linker flag
        ARM: arrange show_pte() to issue severity-based messages
        ARM: add "8<--- cut here ---" to kernel dumps
      2b49350b
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 4d2fa8b4
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "Here is the crypto update for 5.3:
      
        API:
         - Test shash interface directly in testmgr
         - cra_driver_name is now mandatory
      
        Algorithms:
         - Replace arc4 crypto_cipher with library helper
         - Implement 5 way interleave for ECB, CBC and CTR on arm64
         - Add xxhash
         - Add continuous self-test on noise source to drbg
         - Update jitter RNG
      
        Drivers:
         - Add support for SHA204A random number generator
         - Add support for 7211 in iproc-rng200
         - Fix fuzz test failures in inside-secure
         - Fix fuzz test failures in talitos
         - Fix fuzz test failures in qat"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (143 commits)
        crypto: stm32/hash - remove interruptible condition for dma
        crypto: stm32/hash - Fix hmac issue more than 256 bytes
        crypto: stm32/crc32 - rename driver file
        crypto: amcc - remove memset after dma_alloc_coherent
        crypto: ccp - Switch to SPDX license identifiers
        crypto: ccp - Validate the the error value used to index error messages
        crypto: doc - Fix formatting of new crypto engine content
        crypto: doc - Add parameter documentation
        crypto: arm64/aes-ce - implement 5 way interleave for ECB, CBC and CTR
        crypto: arm64/aes-ce - add 5 way interleave routines
        crypto: talitos - drop icv_ool
        crypto: talitos - fix hash on SEC1.
        crypto: talitos - move struct talitos_edesc into talitos.h
        lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
        crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
        crypto: asymmetric_keys - select CRYPTO_HASH where needed
        crypto: serpent - mark __serpent_setkey_sbox noinline
        crypto: testmgr - dynamically allocate crypto_shash
        crypto: testmgr - dynamically allocate testvec_config
        crypto: talitos - eliminate unneeded 'done' functions at build time
        ...
      4d2fa8b4
    • Linus Torvalds's avatar
      Merge branch 'next-integrity' of... · 8b681508
      Linus Torvalds authored
      Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity
      
      Pull integrity updates from Mimi Zohar:
       "Bug fixes, code clean up, and new features:
      
         - IMA policy rules can be defined in terms of LSM labels, making the
           IMA policy dependent on LSM policy label changes, in particular LSM
           label deletions. The new environment, in which IMA-appraisal is
           being used, frequently updates the LSM policy and permits LSM label
           deletions.
      
         - Prevent an mmap'ed shared file opened for write from also being
           mmap'ed execute. In the long term, making this and other similar
           changes at the VFS layer would be preferable.
      
         - The IMA per policy rule template format support is needed for a
           couple of new/proposed features (eg. kexec boot command line
           measurement, appended signatures, and VFS provided file hashes).
      
         - Other than the "boot-aggregate" record in the IMA measuremeent
           list, all other measurements are of file data. Measuring and
           storing the kexec boot command line in the IMA measurement list is
           the first buffer based measurement included in the measurement
           list"
      
      * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        integrity: Introduce struct evm_xattr
        ima: Update MAX_TEMPLATE_NAME_LEN to fit largest reasonable definition
        KEXEC: Call ima_kexec_cmdline to measure the boot command line args
        IMA: Define a new template field buf
        IMA: Define a new hook to measure the kexec boot command line arguments
        IMA: support for per policy rule template formats
        integrity: Fix __integrity_init_keyring() section mismatch
        ima: Use designated initializers for struct ima_event_data
        ima: use the lsm policy update notifier
        LSM: switch to blocking policy update notifiers
        x86/ima: fix the Kconfig dependency for IMA_ARCH_POLICY
        ima: Make arch_policy_entry static
        ima: prevent a file already mmap'ed write to be mmap'ed execute
        x86/ima: check EFI SetupMode too
      8b681508
    • Linus Torvalds's avatar
      Merge tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 0f75ef6a
      Linus Torvalds authored
      Pull keyring ACL support from David Howells:
       "This changes the permissions model used by keys and keyrings to be
        based on an internal ACL by the following means:
      
         - Replace the permissions mask internally with an ACL that contains a
           list of ACEs, each with a specific subject with a permissions mask.
           Potted default ACLs are available for new keys and keyrings.
      
           ACE subjects can be macroised to indicate the UID and GID specified
           on the key (which remain). Future commits will be able to add
           additional subject types, such as specific UIDs or domain
           tags/namespaces.
      
           Also split a number of permissions to give finer control. Examples
           include splitting the revocation permit from the change-attributes
           permit, thereby allowing someone to be granted permission to revoke
           a key without allowing them to change the owner; also the ability
           to join a keyring is split from the ability to link to it, thereby
           stopping a process accessing a keyring by joining it and thus
           acquiring use of possessor permits.
      
         - Provide a keyctl to allow the granting or denial of one or more
           permits to a specific subject. Direct access to the ACL is not
           granted, and the ACL cannot be viewed"
      
      * tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        keys: Provide KEYCTL_GRANT_PERMISSION
        keys: Replace uid/gid/perm permissions checking with an ACL
      0f75ef6a
    • Linus Torvalds's avatar
      Merge tag 'keys-namespace-20190627' of... · c84ca912
      Linus Torvalds authored
      Merge tag 'keys-namespace-20190627' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      
      Pull keyring namespacing from David Howells:
       "These patches help make keys and keyrings more namespace aware.
      
        Firstly some miscellaneous patches to make the process easier:
      
         - Simplify key index_key handling so that the word-sized chunks
           assoc_array requires don't have to be shifted about, making it
           easier to add more bits into the key.
      
         - Cache the hash value in the key so that we don't have to calculate
           on every key we examine during a search (it involves a bunch of
           multiplications).
      
         - Allow keying_search() to search non-recursively.
      
        Then the main patches:
      
         - Make it so that keyring names are per-user_namespace from the point
           of view of KEYCTL_JOIN_SESSION_KEYRING so that they're not
           accessible cross-user_namespace.
      
           keyctl_capabilities() shows KEYCTL_CAPS1_NS_KEYRING_NAME for this.
      
         - Move the user and user-session keyrings to the user_namespace
           rather than the user_struct. This prevents them propagating
           directly across user_namespaces boundaries (ie. the KEY_SPEC_*
           flags will only pick from the current user_namespace).
      
         - Make it possible to include the target namespace in which the key
           shall operate in the index_key. This will allow the possibility of
           multiple keys with the same description, but different target
           domains to be held in the same keyring.
      
           keyctl_capabilities() shows KEYCTL_CAPS1_NS_KEY_TAG for this.
      
         - Make it so that keys are implicitly invalidated by removal of a
           domain tag, causing them to be garbage collected.
      
         - Institute a network namespace domain tag that allows keys to be
           differentiated by the network namespace in which they operate. New
           keys that are of a type marked 'KEY_TYPE_NET_DOMAIN' are assigned
           the network domain in force when they are created.
      
         - Make it so that the desired network namespace can be handed down
           into the request_key() mechanism. This allows AFS, NFS, etc. to
           request keys specific to the network namespace of the superblock.
      
           This also means that the keys in the DNS record cache are
           thenceforth namespaced, provided network filesystems pass the
           appropriate network namespace down into dns_query().
      
           For DNS, AFS and NFS are good, whilst CIFS and Ceph are not. Other
           cache keyrings, such as idmapper keyrings, also need to set the
           domain tag - for which they need access to the network namespace of
           the superblock"
      
      * tag 'keys-namespace-20190627' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        keys: Pass the network namespace into request_key mechanism
        keys: Network namespace domain tag
        keys: Garbage collect keys for which the domain has been removed
        keys: Include target namespace in match criteria
        keys: Move the user and user-session keyrings to the user_namespace
        keys: Namespace keyring names
        keys: Add a 'recurse' flag for keyring searches
        keys: Cache the hash value to avoid lots of recalculation
        keys: Simplify key description management
      c84ca912
    • Linus Torvalds's avatar
      Merge tag 'keys-request-20190626' of... · c236b6dd
      Linus Torvalds authored
      Merge tag 'keys-request-20190626' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      
      Pull request_key improvements from David Howells:
       "These are all request_key()-related, including a fix and some improvements:
      
         - Fix the lack of a Link permission check on a key found by
           request_key(), thereby enabling request_key() to link keys that
           don't grant this permission to the target keyring (which must still
           grant Write permission).
      
           Note that the key must be in the caller's keyrings already to be
           found.
      
         - Invalidate used request_key authentication keys rather than
           revoking them, so that they get cleaned up immediately rather than
           hanging around till the expiry time is passed.
      
         - Move the RCU locks outwards from the keyring search functions so
           that a request_key_rcu() can be provided. This can be called in RCU
           mode, so it can't sleep and can't upcall - but it can be called
           from LOOKUP_RCU pathwalk mode.
      
         - Cache the latest positive result of request_key*() temporarily in
           task_struct so that filesystems that make a lot of request_key()
           calls during pathwalk can take advantage of it to avoid having to
           redo the searching. This requires CONFIG_KEYS_REQUEST_CACHE=y.
      
           It is assumed that the key just found is likely to be used multiple
           times in each step in an RCU pathwalk, and is likely to be reused
           for the next step too.
      
           Note that the cleanup of the cache is done on TIF_NOTIFY_RESUME,
           just before userspace resumes, and on exit"
      
      * tag 'keys-request-20190626' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        keys: Kill off request_key_async{,_with_auxdata}
        keys: Cache result of request_key*() temporarily in task_struct
        keys: Provide request_key_rcu()
        keys: Move the RCU locks outwards from the keyring search functions
        keys: Invalidate used request_key authentication keys
        keys: Fix request_key() lack of Link perm check on found key
      c236b6dd
    • Linus Torvalds's avatar
      Merge tag 'keys-misc-20190619' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · d44a6274
      Linus Torvalds authored
      Pull misc keyring updates from David Howells:
       "These are some miscellaneous keyrings fixes and improvements:
      
         - Fix a bunch of warnings from sparse, including missing RCU bits and
           kdoc-function argument mismatches
      
         - Implement a keyctl to allow a key to be moved from one keyring to
           another, with the option of prohibiting key replacement in the
           destination keyring.
      
         - Grant Link permission to possessors of request_key_auth tokens so
           that upcall servicing daemons can more easily arrange things such
           that only the necessary auth key is passed to the actual service
           program, and not all the auth keys a daemon might possesss.
      
         - Improvement in lookup_user_key().
      
         - Implement a keyctl to allow keyrings subsystem capabilities to be
           queried.
      
        The keyutils next branch has commits to make available, document and
        test the move-key and capabilities code:
      
              https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/log
      
        They're currently on the 'next' branch"
      
      * tag 'keys-misc-20190619' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        keys: Add capability-checking keyctl function
        keys: Reuse keyring_index_key::desc_len in lookup_user_key()
        keys: Grant Link permission to possessers of request_key auth keys
        keys: Add a keyctl to move a key between keyrings
        keys: Hoist locking out of __key_link_begin()
        keys: Break bits out of key_unlink()
        keys: Change keyring_serialise_link_sem to a mutex
        keys: sparse: Fix kdoc mismatches
        keys: sparse: Fix incorrect RCU accesses
        keys: sparse: Fix key_fs[ug]id_changed()
      d44a6274
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20190702' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 7c0f8963
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
       "Like the audit pull request this is a little early due to some
        upcoming vacation plans and uncertain network access while I'm away.
        Also like the audit PR, the list of patches here is pretty minor, the
        highlights include:
      
         - Explicitly use __le variables to make sure "sparse" can verify
           proper byte endian handling.
      
         - Remove some BUG_ON()s that are no longer needed.
      
         - Allow zero-byte writes to the "keycreate" procfs attribute without
           requiring key:create to make it easier for userspace to reset the
           keycreate label.
      
         - Consistently log the "invalid_context" field as an untrusted string
           in the AUDIT_SELINUX_ERR audit records"
      
      * tag 'selinux-pr-20190702' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: format all invalid context as untrusted
        selinux: fix empty write to keycreate file
        selinux: remove some no-op BUG_ONs
        selinux: provide __le variables explicitly
      7c0f8963
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20190702' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · 61fc5771
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "This pull request is a bit early, but with some vacation time coming
        up I wanted to send this out now just in case the remote Internet Gods
        decide not to smile on me once the merge window opens. The patchset
        for v5.3 is pretty minor this time, the highlights include:
      
         - When the audit daemon is sent a signal, ensure we deliver
           information about the sender even when syscall auditing is not
           enabled/supported.
      
         - Add the ability to filter audit records based on network address
           family.
      
         - Tighten the audit field filtering restrictions on string based
           fields.
      
         - Cleanup the audit field filtering verification code.
      
         - Remove a few BUG() calls from the audit code"
      
      * tag 'audit-pr-20190702' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: remove the BUG() calls in the audit rule comparison functions
        audit: enforce op for string fields
        audit: add saddr_fam filter field
        audit: re-structure audit field valid checks
        audit: deliver signal_info regarless of syscall
      61fc5771
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-next-20190625' of git://git.infradead.org/users/jjs/linux-tpmdd · 88492259
      Linus Torvalds authored
      Pull tpm updates from Jarkko Sakkinen:
       "This contains two critical bug fixes and support for obtaining TPM
        events triggered by ExitBootServices().
      
        For the latter I have to give a quite verbose explanation not least
        because I had to revisit all the details myself to remember what was
        going on in Matthew's patches.
      
        The preboot software stack maintains an event log that gets entries
        every time something gets hashed to any of the PCR registers. What
        gets hashed could be a component to be run or perhaps log of some
        actions taken just to give couple of coarse examples. In general,
        anything relevant for the boot process that the preboot software does
        gets hashed and a log entry with a specific event type [1].
      
        The main application for this is remote attestation and the reason why
        it is useful is nicely put in the very first section of [1]:
      
           "Attestation is used to provide information about the platform’s
            state to a challenger. However, PCR contents are difficult to
            interpret; therefore, attestation is typically more useful when
            the PCR contents are accompanied by a measurement log. While not
            trusted on their own, the measurement log contains a richer set of
            information than do the PCR contents. The PCR contents are used to
            provide the validation of the measurement log."
      
        Because EFI_TCG2_PROTOCOL.GetEventLog() is not available after calling
        ExitBootServices(), Linux EFI stub copies the event log to a custom
        configuration table. Unfortunately, ExitBootServices() also generates
        events and obviously these events do not get copied to that table.
        Luckily firmware does this for us by providing a configuration table
        identified by EFI_TCG2_FINAL_EVENTS_TABLE_GUID.
      
        This essentially contains necessary changes to provide the full event
        log for the use the user space that is concatenated from these two
        partial event logs [2]"
      
      [1] https://trustedcomputinggroup.org/resource/pc-client-specific-platform-firmware-profile-specification/
      [2] The final concatenation is done in drivers/char/tpm/eventlog/efi.c
      
      * tag 'tpmdd-next-20190625' of git://git.infradead.org/users/jjs/linux-tpmdd:
        tpm: Don't duplicate events from the final event log in the TCG2 log
        Abstract out support for locating an EFI config table
        tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations
        efi: Attempt to get the TCG2 event log in the boot stub
        tpm: Append the final event log to the TPM event log
        tpm: Reserve the TPM final events table
        tpm: Abstract crypto agile event size calculations
        tpm: Actually fail on TPM errors during "get random"
      88492259
    • Linus Torvalds's avatar
      Merge branch 'x86-topology-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 222a21d2
      Linus Torvalds authored
      Pull x86 topology updates from Ingo Molnar:
       "Implement multi-die topology support on Intel CPUs and expose the die
        topology to user-space tooling, by Len Brown, Kan Liang and Zhang Rui.
      
        These changes should have no effect on the kernel's existing
        understanding of topologies, i.e. there should be no behavioral impact
        on cache, NUMA, scheduler, perf and other topologies and overall
        system performance"
      
      * 'x86-topology-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/rapl: Cosmetic rename internal variables in response to multi-die/pkg support
        perf/x86/intel/uncore: Cosmetic renames in response to multi-die/pkg support
        hwmon/coretemp: Cosmetic: Rename internal variables to zones from packages
        thermal/x86_pkg_temp_thermal: Cosmetic: Rename internal variables to zones from packages
        perf/x86/intel/cstate: Support multi-die/package
        perf/x86/intel/rapl: Support multi-die/package
        perf/x86/intel/uncore: Support multi-die/package
        topology: Create core_cpus and die_cpus sysfs attributes
        topology: Create package_cpus sysfs attribute
        hwmon/coretemp: Support multi-die/package
        powercap/intel_rapl: Update RAPL domain name and debug messages
        thermal/x86_pkg_temp_thermal: Support multi-die/package
        powercap/intel_rapl: Support multi-die/package
        powercap/intel_rapl: Simplify rapl_find_package()
        x86/topology: Define topology_logical_die_id()
        x86/topology: Define topology_die_id()
        cpu/topology: Export die_id
        x86/topology: Create topology_max_die_per_package()
        x86/topology: Add CPUID.1F multi-die/package support
      222a21d2
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8faef712
      Linus Torvalds authored
      Pull x86 platform updayes from Ingo Molnar:
       "Most of the commits add ACRN hypervisor guest support, plus two
        cleanups"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/jailhouse: Mark jailhouse_x2apic_available() as __init
        x86/platform/geode: Drop <linux/gpio.h> includes
        x86/acrn: Use HYPERVISOR_CALLBACK_VECTOR for ACRN guest upcall vector
        x86: Add support for Linux guests on an ACRN hypervisor
        x86/Kconfig: Add new X86_HV_CALLBACK_VECTOR config symbol
      8faef712
    • Linus Torvalds's avatar
      Merge branch 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · da177023
      Linus Torvalds authored
      Pull x86 paravirt updates from Ingo Molnar:
       "A handful of paravirt patching code enhancements to make it more
        robust against patching failures, and related cleanups and not so
        related cleanups - by Thomas Gleixner and myself"
      
      * 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/paravirt: Rename paravirt_patch_site::instrtype to paravirt_patch_site::type
        x86/paravirt: Standardize 'insn_buff' variable names
        x86/paravirt: Match paravirt patchlet field definition ordering to initialization ordering
        x86/paravirt: Replace the paravirt patch asm magic
        x86/paravirt: Unify the 32/64 bit paravirt patching code
        x86/paravirt: Detect over-sized patching bugs in paravirt_patch_call()
        x86/paravirt: Detect over-sized patching bugs in paravirt_patch_insns()
        x86/paravirt: Remove bogus extern declarations
      da177023
    • Linus Torvalds's avatar
      Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3431a940
      Linus Torvalds authored
      Pull x86 AVX512 status update from Ingo Molnar:
       "This adds a new ABI that the main scheduler probably doesn't want to
        deal with but HPC job schedulers might want to use: the
        AVX512_elapsed_ms field in the new /proc/<pid>/arch_status task status
        file, which allows the user-space job scheduler to cluster such tasks,
        to avoid turbo frequency drops"
      
      * 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Documentation/filesystems/proc.txt: Add arch_status file
        x86/process: Add AVX-512 usage elapsed time to /proc/pid/arch_status
        proc: Add /proc/<pid>/arch_status
      3431a940
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5b7a2095
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Misc small cleanups: removal of superfluous code and coding style
        cleanups mostly"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kexec: Make variable static and config dependent
        x86/defconfigs: Remove useless UEVENT_HELPER_PATH
        x86/amd_nb: Make hygon_nb_misc_ids static
        x86/tsc: Move inline keyword to the beginning of function declarations
        x86/io_delay: Define IO_DELAY macros in C instead of Kconfig
        x86/io_delay: Break instead of fallthrough in switch statement
      5b7a2095
    • Linus Torvalds's avatar
      Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6cfcdad7
      Linus Torvalds authored
      Pull x86 cache resource control update from Ingo Molnar:
       "Two cleanup patches"
      
      * 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/resctrl: Cleanup cbm_ensure_valid()
        x86/resctrl: Use _ASM_BX to avoid ifdeffery
      6cfcdad7
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c83b5d32
      Linus Torvalds authored
      Pull x86 build updates from Ingo Molnar:
       "Two kbuild enhancements by Masahiro Yamada"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/build: Remove redundant 'clean-files += capflags.c'
        x86/build: Add 'set -e' to mkcapflags.sh to delete broken capflags.c
      c83b5d32
  2. 08 Jul, 2019 12 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a1aab6f3
      Linus Torvalds authored
      Pull x86 asm updates from Ingo Molnar:
       "Most of the changes relate to Peter Zijlstra's cleanup of ptregs
        handling, in particular the i386 part is now much simplified and
        standardized - no more partial ptregs stack frames via the esp/ss
        oddity. This simplifies ftrace, kprobes, the unwinder, ptrace, kdump
        and kgdb.
      
        There's also a CR4 hardening enhancements by Kees Cook, to make the
        generic platform functions such as native_write_cr4() less useful as
        ROP gadgets that disable SMEP/SMAP. Also protect the WP bit of CR0
        against similar attacks.
      
        The rest is smaller cleanups/fixes"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/alternatives: Add int3_emulate_call() selftest
        x86/stackframe/32: Allow int3_emulate_push()
        x86/stackframe/32: Provide consistent pt_regs
        x86/stackframe, x86/ftrace: Add pt_regs frame annotations
        x86/stackframe, x86/kprobes: Fix frame pointer annotations
        x86/stackframe: Move ENCODE_FRAME_POINTER to asm/frame.h
        x86/entry/32: Clean up return from interrupt preemption path
        x86/asm: Pin sensitive CR0 bits
        x86/asm: Pin sensitive CR4 bits
        Documentation/x86: Fix path to entry_32.S
        x86/asm: Remove unused TASK_TI_flags from asm-offsets.c
      a1aab6f3
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dad1c12e
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
      
       - Remove the unused per rq load array and all its infrastructure, by
         Dietmar Eggemann.
      
       - Add utilization clamping support by Patrick Bellasi. This is a
         refinement of the energy aware scheduling framework with support for
         boosting of interactive and capping of background workloads: to make
         sure critical GUI threads get maximum frequency ASAP, and to make
         sure background processing doesn't unnecessarily move to cpufreq
         governor to higher frequencies and less energy efficient CPU modes.
      
       - Add the bare minimum of tracepoints required for LISA EAS regression
         testing, by Qais Yousef - which allows automated testing of various
         power management features, including energy aware scheduling.
      
       - Restructure the former tsk_nr_cpus_allowed() facility that the -rt
         kernel used to modify the scheduler's CPU affinity logic such as
         migrate_disable() - introduce the task->cpus_ptr value instead of
         taking the address of &task->cpus_allowed directly - by Sebastian
         Andrzej Siewior.
      
       - Misc optimizations, fixes, cleanups and small enhancements - see the
         Git log for details.
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)
        sched/uclamp: Add uclamp support to energy_compute()
        sched/uclamp: Add uclamp_util_with()
        sched/cpufreq, sched/uclamp: Add clamps for FAIR and RT tasks
        sched/uclamp: Set default clamps for RT tasks
        sched/uclamp: Reset uclamp values on RESET_ON_FORK
        sched/uclamp: Extend sched_setattr() to support utilization clamping
        sched/core: Allow sched_setattr() to use the current policy
        sched/uclamp: Add system default clamps
        sched/uclamp: Enforce last task's UCLAMP_MAX
        sched/uclamp: Add bucket local max tracking
        sched/uclamp: Add CPU's clamp buckets refcounting
        sched/fair: Rename weighted_cpuload() to cpu_runnable_load()
        sched/debug: Export the newly added tracepoints
        sched/debug: Add sched_overutilized tracepoint
        sched/debug: Add new tracepoint to track PELT at se level
        sched/debug: Add new tracepoints to track PELT at rq level
        sched/debug: Add a new sched_trace_*() helper functions
        sched/autogroup: Make autogroup_path() always available
        sched/wait: Deduplicate code with do-while
        sched/topology: Remove unused 'sd' parameter from arch_scale_cpu_capacity()
        ...
      dad1c12e
    • Linus Torvalds's avatar
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 090bc5a2
      Linus Torvalds authored
      Pull RAS updates from Ingo Molnar:
       "Boris is on vacation so I'm sending the RAS bits this time. The main
        changes were:
      
         - Various RAS/CEC improvements and fixes by Borislav Petkov:
             - error insertion fixes
             - offlining latency fix
             - memory leak fix
             - additional sanity checks
             - cleanups
             - debug output improvements
      
         - More SMCA enhancements by Yazen Ghannam:
             - make banks truly per-CPU which they are in the hardware
             - don't over-cache certain registers
             - make the number of MCA banks per-CPU variable
      
           The long term goal with these changes is to support future
           heterogenous SMCA extensions.
      
         - Misc fixes and improvements"
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Do not check return value of debugfs_create functions
        x86/MCE: Determine MCA banks' init state properly
        x86/MCE: Make the number of MCA banks a per-CPU variable
        x86/MCE/AMD: Don't cache block addresses on SMCA systems
        x86/MCE: Make mce_banks a per-CPU array
        x86/MCE: Make struct mce_banks[] static
        RAS/CEC: Add copyright
        RAS/CEC: Add CONFIG_RAS_CEC_DEBUG and move CEC debug features there
        RAS/CEC: Dump the different array element sections
        RAS/CEC: Rename count_threshold to action_threshold
        RAS/CEC: Sanity-check array on every insertion
        RAS/CEC: Fix potential memory leak
        RAS/CEC: Do not set decay value on error
        RAS/CEC: Check count_threshold unconditionally
        RAS/CEC: Fix pfn insertion
      090bc5a2
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e1928328
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "The main changes in this cycle are:
      
         - rwsem scalability improvements, phase #2, by Waiman Long, which are
           rather impressive:
      
             "On a 2-socket 40-core 80-thread Skylake system with 40 reader
              and writer locking threads, the min/mean/max locking operations
              done in a 5-second testing window before the patchset were:
      
               40 readers, Iterations Min/Mean/Max = 1,807/1,808/1,810
               40 writers, Iterations Min/Mean/Max = 1,807/50,344/151,255
      
              After the patchset, they became:
      
               40 readers, Iterations Min/Mean/Max = 30,057/31,359/32,741
               40 writers, Iterations Min/Mean/Max = 94,466/95,845/97,098"
      
           There's a lot of changes to the locking implementation that makes
           it similar to qrwlock, including owner handoff for more fair
           locking.
      
           Another microbenchmark shows how across the spectrum the
           improvements are:
      
             "With a locking microbenchmark running on 5.1 based kernel, the
              total locking rates (in kops/s) on a 2-socket Skylake system
              with equal numbers of readers and writers (mixed) before and
              after this patchset were:
      
              # of Threads   Before Patch      After Patch
              ------------   ------------      -----------
                   2            2,618             4,193
                   4            1,202             3,726
                   8              802             3,622
                  16              729             3,359
                  32              319             2,826
                  64              102             2,744"
      
           The changes are extensive and the patch-set has been through
           several iterations addressing various locking workloads. There
           might be more regressions, but unless they are pathological I
           believe we want to use this new implementation as the baseline
           going forward.
      
         - jump-label optimizations by Daniel Bristot de Oliveira: the primary
           motivation was to remove IPI disturbance of isolated RT-workload
           CPUs, which resulted in the implementation of batched jump-label
           updates. Beyond the improvement of the real-time characteristics
           kernel, in one test this patchset improved static key update
           overhead from 57 msecs to just 1.4 msecs - which is a nice speedup
           as well.
      
         - atomic64_t cross-arch type cleanups by Mark Rutland: over the last
           ~10 years of atomic64_t existence the various types used by the
           APIs only had to be self-consistent within each architecture -
           which means they became wildly inconsistent across architectures.
           Mark puts and end to this by reworking all the atomic64
           implementations to use 's64' as the base type for atomic64_t, and
           to ensure that this type is consistently used for parameters and
           return values in the API, avoiding further problems in this area.
      
         - A large set of small improvements to lockdep by Yuyang Du: type
           cleanups, output cleanups, function return type and othr cleanups
           all around the place.
      
         - A set of percpu ops cleanups and fixes by Peter Zijlstra.
      
         - Misc other changes - please see the Git log for more details"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (82 commits)
        locking/lockdep: increase size of counters for lockdep statistics
        locking/atomics: Use sed(1) instead of non-standard head(1) option
        locking/lockdep: Move mark_lock() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING
        x86/jump_label: Make tp_vec_nr static
        x86/percpu: Optimize raw_cpu_xchg()
        x86/percpu, sched/fair: Avoid local_clock()
        x86/percpu, x86/irq: Relax {set,get}_irq_regs()
        x86/percpu: Relax smp_processor_id()
        x86/percpu: Differentiate this_cpu_{}() and __this_cpu_{}()
        locking/rwsem: Guard against making count negative
        locking/rwsem: Adaptive disabling of reader optimistic spinning
        locking/rwsem: Enable time-based spinning on reader-owned rwsem
        locking/rwsem: Make rwsem->owner an atomic_long_t
        locking/rwsem: Enable readers spinning on writer
        locking/rwsem: Clarify usage of owner's nonspinaable bit
        locking/rwsem: Wake up almost all readers in wait queue
        locking/rwsem: More optimal RT task handling of null owner
        locking/rwsem: Always release wait_lock before waking up tasks
        locking/rwsem: Implement lock handoff to prevent lock starvation
        locking/rwsem: Make rwsem_spin_on_owner() return owner state
        ...
      e1928328
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 46f1ec23
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "The changes in this cycle are:
      
         - RCU flavor consolidation cleanups and optmizations
      
         - Documentation updates
      
         - Miscellaneous fixes
      
         - SRCU updates
      
         - RCU-sync flavor consolidation
      
         - Torture-test updates
      
         - Linux-kernel memory-consistency-model updates, most notably the
           addition of plain C-language accesses"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (61 commits)
        tools/memory-model: Improve data-race detection
        tools/memory-model: Change definition of rcu-fence
        tools/memory-model: Expand definition of barrier
        tools/memory-model: Do not use "herd" to refer to "herd7"
        tools/memory-model: Fix comment in MP+poonceonces.litmus
        Documentation: atomic_t.txt: Explain ordering provided by smp_mb__{before,after}_atomic()
        rcu: Don't return a value from rcu_assign_pointer()
        rcu: Force inlining of rcu_read_lock()
        rcu: Fix irritating whitespace error in rcu_assign_pointer()
        rcu: Upgrade sync_exp_work_done() to smp_mb()
        rcutorture: Upper case solves the case of the vanishing NULL pointer
        torture: Suppress propagating trace_printk() warning
        rcutorture: Dump trace buffer for callback pipe drain failures
        torture: Add --trust-make to suppress "make clean"
        torture: Make --cpus override idleness calculations
        torture: Run kernel build in source directory
        torture: Add function graph-tracing cheat sheet
        torture: Capture qemu output
        rcutorture: Tweak kvm options
        rcutorture: Add trivial RCU implementation
        ...
      46f1ec23
    • Linus Torvalds's avatar
      Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 223cea6a
      Linus Torvalds authored
      Pull x86 pti updates from Thomas Gleixner:
       "The speculative paranoia departement delivers a few more plugs for
        possible (probably theoretical) spectre/mds leaks"
      
      * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tls: Fix possible spectre-v1 in do_get_thread_area()
        x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
        x86/speculation/mds: Eliminate leaks by trace_hardirqs_on()
      223cea6a
    • Linus Torvalds's avatar
      Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2f0f6503
      Linus Torvalds authored
      Pull x86 timer updates from Thomas Gleixner:
       "A rather large series consolidating the HPET code, which was triggered
        by the attempt to bolt HPET NMI watchdog support on to the existing
        maze with the usual duct tape and super glue approach.
      
        This mainly removes two separate partially redundant storage layers
        and consolidates them into a single one which provides a consistent
        view of the different HPET channels and their usage and allows to
        integrate HPET NMI watchdog support (if it turns out to be feasible)
        in a non intrusive way"
      
      * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (29 commits)
        x86/hpet: Use channel for legacy clockevent storage
        x86/hpet: Use common init for legacy clockevent
        x86/hpet: Carve out shareable parts of init_one_hpet_msi_clockevent()
        x86/hpet: Consolidate clockevent functions
        x86/hpet: Wrap legacy clockevent in hpet_channel
        x86/hpet: Use cached info instead of extra flags
        x86/hpet: Move clockevents into channels
        x86/hpet: Rename variables to prepare for switching to channels
        x86/hpet: Add function to select a /dev/hpet channel
        x86/hpet: Add mode information to struct hpet_channel
        x86/hpet: Use cached channel data
        x86/hpet: Introduce struct hpet_base and struct hpet_channel
        x86/hpet: Coding style cleanup
        x86/hpet: Clean up comments
        x86/hpet: Make naming consistent
        x86/hpet: Remove not required includes
        x86/hpet: Decapitalize and rename EVT_TO_HPET_DEV
        x86/hpet: Simplify counter validation
        x86/hpet: Separate counter check out of clocksource register code
        x86/hpet: Shuffle code around for readability sake
        ...
      2f0f6503
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 13324c42
      Linus Torvalds authored
      Pull x86 CPU feature updates from Thomas Gleixner:
       "Updates for x86 CPU features:
      
         - Support for UMWAIT/UMONITOR, which allows to use MWAIT and MONITOR
           instructions in user space to save power e.g. in HPC workloads
           which spin wait on synchronization points.
      
           The maximum time a MWAIT can halt in userspace is controlled by the
           kernel and can be adjusted by the sysadmin.
      
         - Speed up the MTRR handling code on CPUs which support cache
           self-snooping correctly.
      
           On those CPUs the wbinvd() invocations can be omitted which speeds
           up the MTRR setup by a factor of 50.
      
         - Support for the new x86 vendor Zhaoxin who develops processors
           based on the VIA Centaur technology.
      
         - Prevent 'cat /proc/cpuinfo' from affecting isolated NOHZ_FULL CPUs
           by sending IPIs to retrieve the CPU frequency and use the cached
           values instead.
      
         - The addition and late revert of the FSGSBASE support. The revert
           was required as it turned out that the code still has hard to
           diagnose issues. Yet another engineering trainwreck...
      
         - Small fixes, cleanups, improvements and the usual new Intel CPU
           family/model addons"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
        x86/fsgsbase: Revert FSGSBASE support
        selftests/x86/fsgsbase: Fix some test case bugs
        x86/entry/64: Fix and clean up paranoid_exit
        x86/entry/64: Don't compile ignore_sysret if 32-bit emulation is enabled
        selftests/x86: Test SYSCALL and SYSENTER manually with TF set
        x86/mtrr: Skip cache flushes on CPUs with cache self-snooping
        x86/cpu/intel: Clear cache self-snoop capability in CPUs with known errata
        Documentation/ABI: Document umwait control sysfs interfaces
        x86/umwait: Add sysfs interface to control umwait maximum time
        x86/umwait: Add sysfs interface to control umwait C0.2 state
        x86/umwait: Initialize umwait control values
        x86/cpufeatures: Enumerate user wait instructions
        x86/cpu: Disable frequency requests via aperfmperf IPI for nohz_full CPUs
        x86/acpi/cstate: Add Zhaoxin processors support for cache flush policy in C3
        ACPI, x86: Add Zhaoxin processors support for NONSTOP TSC
        x86/cpu: Create Zhaoxin processors architecture support file
        x86/cpu: Split Tremont based Atoms from the rest
        Documentation/x86/64: Add documentation for GS/FS addressing mode
        x86/elf: Enumerate kernel FSGSBASE capability in AT_HWCAP2
        x86/cpu: Enable FSGSBASE on 64bit by default and add a chicken bit
        ...
      13324c42
    • Linus Torvalds's avatar
      Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ab2486a9
      Linus Torvalds authored
      Pull x86 FPU updates from Thomas Gleixner:
       "A small set of updates for the FPU code:
      
         - Make the no387/nofxsr command line options useful by restricting
           them to 32bit and actually clearing all dependencies to prevent
           random crashes and malfunction.
      
         - Simplify and cleanup the kernel_fpu_*() helpers"
      
      * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu: Inline fpu__xstate_clear_all_cpu_caps()
        x86/fpu: Make 'no387' and 'nofxsr' command line options useful
        x86/fpu: Remove the fpu__save() export
        x86/fpu: Simplify kernel_fpu_begin()
        x86/fpu: Simplify kernel_fpu_end()
      ab2486a9
    • Linus Torvalds's avatar
      Merge branch 'x86-entry-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0d37dde7
      Linus Torvalds authored
      Pull x86 vsyscall updates from Thomas Gleixner:
       "Further hardening of the legacy vsyscall by providing support for
        execute only mode and switching the default to it.
      
        This prevents a certain class of attacks which rely on the vsyscall
        page being accessible at a fixed address in the canonical kernel
        address space"
      
      * 'x86-entry-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        selftests/x86: Add a test for process_vm_readv() on the vsyscall page
        x86/vsyscall: Add __ro_after_init to global variables
        x86/vsyscall: Change the default vsyscall mode to xonly
        selftests/x86/vsyscall: Verify that vsyscall=none blocks execution
        x86/vsyscall: Document odd SIGSEGV error code for vsyscalls
        x86/vsyscall: Show something useful on a read fault
        x86/vsyscall: Add a new vsyscall=xonly mode
        Documentation/admin: Remove the vsyscall=native documentation
      0d37dde7
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0902d501
      Linus Torvalds authored
      Pull x96 apic updates from Thomas Gleixner:
       "Updates for the x86 APIC interrupt handling and APIC timer:
      
         - Fix a long standing issue with spurious interrupts which was caused
           by the big vector management rework a few years ago. Robert Hodaszi
           provided finally enough debug data and an excellent initial failure
           analysis which allowed to understand the underlying issues.
      
           This contains a change to the core interrupt management code which
           is required to handle this correctly for the APIC/IO_APIC. The core
           changes are NOOPs for most architectures except ARM64. ARM64 is not
           impacted by the change as confirmed by Marc Zyngier.
      
         - Newer systems allow to disable the PIT clock for power saving
           causing panic in the timer interrupt delivery check of the IO/APIC
           when the HPET timer is not enabled either. While the clock could be
           turned on this would cause an endless whack a mole game to chase
           the proper register in each affected chipset.
      
           These systems provide the relevant frequencies for TSC, CPU and the
           local APIC timer via CPUID and/or MSRs, which allows to avoid the
           PIT/HPET based calibration. As the calibration code is the only
           usage of the legacy timers on modern systems and is skipped anyway
           when the frequencies are known already, there is no point in
           setting up the PIT and actually checking for the interrupt delivery
           via IO/APIC.
      
           To achieve this on a wide variety of platforms, the CPUID/MSR based
           frequency readout has been made more robust, which also allowed to
           remove quite some workarounds which turned out to be not longer
           required. Thanks to Daniel Drake for analysis, patches and
           verification"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/irq: Seperate unused system vectors from spurious entry again
        x86/irq: Handle spurious interrupt after shutdown gracefully
        x86/ioapic: Implement irq_get_irqchip_state() callback
        genirq: Add optional hardware synchronization for shutdown
        genirq: Fix misleading synchronize_irq() documentation
        genirq: Delay deactivation in free_irq()
        x86/timer: Skip PIT initialization on modern chipsets
        x86/apic: Use non-atomic operations when possible
        x86/apic: Make apic_bsp_setup() static
        x86/tsc: Set LAPIC timer period to crystal clock frequency
        x86/apic: Rename 'lapic_timer_frequency' to 'lapic_timer_period'
        x86/tsc: Use CPUID.0x16 to calculate missing crystal frequency
      0902d501
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 927ba67a
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "The timer and timekeeping departement delivers:
      
        Core:
      
         - The consolidation of the VDSO code into a generic library including
           the conversion of x86 and ARM64. Conversion of ARM and MIPS are en
           route through the relevant maintainer trees and should end up in
           5.4.
      
           This gets rid of the unnecessary different copies of the same code
           and brings all architectures on the same level of VDSO
           functionality.
      
         - Make the NTP user space interface more robust by restricting the
           TAI offset to prevent undefined behaviour. Includes a selftest.
      
         - Validate user input in the compat settimeofday() syscall to catch
           invalid values which would be turned into valid values by a
           multiplication overflow
      
         - Consolidate the time accessors
      
         - Small fixes, improvements and cleanups all over the place
      
        Drivers:
      
         - Support for the NXP system counter, TI davinci timer
      
         - Move the Microsoft HyperV clocksource/events code into the
           drivers/clocksource directory so it can be shared between x86 and
           ARM64.
      
         - Overhaul of the Tegra driver
      
         - Delay timer support for IXP4xx
      
         - Small fixes, improvements and cleanups as usual"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)
        time: Validate user input in compat_settimeofday()
        timer: Document TIMER_PINNED
        clocksource/drivers: Continue making Hyper-V clocksource ISA agnostic
        clocksource/drivers: Make Hyper-V clocksource ISA agnostic
        MAINTAINERS: Fix Andy's surname and the directory entries of VDSO
        hrtimer: Use a bullet for the returns bullet list
        arm64: vdso: Fix compilation with clang older than 8
        arm64: compat: Fix __arch_get_hw_counter() implementation
        arm64: Fix __arch_get_hw_counter() implementation
        lib/vdso: Make delta calculation work correctly
        MAINTAINERS: Add entry for the generic VDSO library
        arm64: compat: No need for pre-ARMv7 barriers on an ARMv8 system
        arm64: vdso: Remove unnecessary asm-offsets.c definitions
        vdso: Remove superfluous #ifdef __KERNEL__ in vdso/datapage.h
        clocksource/drivers/davinci: Add support for clocksource
        clocksource/drivers/davinci: Add support for clockevents
        clocksource/drivers/tegra: Set up maximum-ticks limit properly
        clocksource/drivers/tegra: Cycles can't be 0
        clocksource/drivers/tegra: Restore base address before cleanup
        clocksource/drivers/tegra: Add verbose definition for 1MHz constant
        ...
      927ba67a