10 Jul, 2019

6 commits

  • Pull power management updates from Rafael Wysocki:
    "These update PCI and ACPI power management (improved handling of ACPI
    power resources and PCIe link delays, fixes related to corner cases,
    hibernation handling rework), fix and extend the operating performance
    points (OPP) framework, add new cpufreq drivers for Raspberry Pi and
    imx8m chips, update some other cpufreq drivers, clean up assorted
    pieces of PM code and documentation and update tools.

    Specifics:

    - Improve the handling of shared ACPI power resources in the PCI bus
    type layer (Mika Westerberg).

    - Make the PCI layer take link delays required by the PCIe spec into
    account as appropriate and avoid polling devices in D3cold for PME
    (Mika Westerberg).

    - Fix some corner case issues in ACPI device power management and in
    the PCI bus type layer, optimiza and clean up the handling of
    runtime-suspended PCI devices during system-wide transitions to
    sleep states (Rafael Wysocki).

    - Rework hibernation handling in the ACPI core and the PCI bus type
    to resume runtime-suspended devices before hibernation (which
    allows some functional problems to be avoided) and fix some ACPI
    power management issues related to hiberation (Rafael Wysocki).

    - Extend the operating performance points (OPP) framework to support
    a wider range of devices (Rajendra Nayak, Stehpen Boyd).

    - Fix issues related to genpd_virt_devs and issues with platforms
    using the set_opp() callback in the OPP framework (Viresh Kumar,
    Dmitry Osipenko).

    - Add new cpufreq driver for Raspberry Pi (Nicolas Saenz Julienne).

    - Add new cpufreq driver for imx8m and imx7d chips (Leonard Crestez).

    - Fix and clean up the pcc-cpufreq, brcmstb-avs-cpufreq, s5pv210, and
    armada-37xx cpufreq drivers (David Arcari, Florian Fainelli, Paweł
    Chmiel, YueHaibing).

    - Clean up and fix the cpufreq core (Viresh Kumar, Daniel Lezcano).

    - Fix minor issue in the ACPI system sleep support code and export
    one function from it (Lenny Szubowicz, Dexuan Cui).

    - Clean up assorted pieces of PM code and documentation (Kefeng Wang,
    Andy Shevchenko, Bart Van Assche, Greg Kroah-Hartman, Fuqian Huang,
    Geert Uytterhoeven, Mathieu Malaterre, Rafael Wysocki).

    - Update the pm-graph utility to v5.4 (Todd Brandt).

    - Fix and clean up the cpupower utility (Abhishek Goel, Nick Black)"

    * tag 'pm-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (57 commits)
    ACPI: PM: Make acpi_sleep_state_supported() non-static
    PM: sleep: Drop dev_pm_skip_next_resume_phases()
    ACPI: PM: Unexport acpi_device_get_power()
    Documentation: ABI: power: Add missing newline at end of file
    ACPI: PM: Drop unused function and function header
    ACPI: PM: Introduce "poweroff" callbacks for ACPI PM domain and LPSS
    ACPI: PM: Simplify and fix PM domain hibernation callbacks
    PCI: PM: Simplify bus-level hibernation callbacks
    PM: ACPI/PCI: Resume all devices during hibernation
    cpufreq: Avoid calling cpufreq_verify_current_freq() from handle_update()
    cpufreq: Consolidate cpufreq_update_current_freq() and __cpufreq_get()
    kernel: power: swap: use kzalloc() instead of kmalloc() followed by memset()
    cpufreq: Don't skip frequency validation for has_target() drivers
    PCI: PM/ACPI: Refresh all stale power state data in pci_pm_complete()
    PCI / ACPI: Add _PR0 dependent devices
    ACPI / PM: Introduce concept of a _PR0 dependent device
    PCI / ACPI: Use cached ACPI device state to get PCI device power state
    ACPI: PM: Allow transitions to D0 to occur in special cases
    ACPI: PM: Avoid evaluating _PS3 on transitions from D3hot to D3cold
    cpufreq: Use has_target() instead of !setpolicy
    ...

    Linus Torvalds
     
  • Pull fbdev updates from Bartlomiej Zolnierkiewicz:

    - remove fbdev notifier usage for fbcon (as prep work to clean up the
    fbcon locking), add locking checks in vt/console code and make
    assorted cleanups in fbdev and backlight code (Daniel Vetter)

    - add COMPILE_TEST support to atmel_lcdfb, da8xx-fb, gbefb, imxfb,
    pvr2fb and pxa168fb drivers (me)

    - fix DMA API abuse in au1200fb and jz4740_fb drivers (Christoph
    Hellwig)

    - add check for new BGRT status field rotation bits in efifb driver
    (Hans de Goede)

    - mark expected switch fall-throughs in s3c-fb driver (Gustavo A. R.
    Silva)

    - remove fbdev mxsfb driver in favour of the drm version (Fabio
    Estevam)

    - remove broken rfbi code from omap2fb driver (me)

    - misc fixes (Arnd Bergmann, Shobhit Kukreti, Wei Yongjun, me)

    - misc cleanups (Gustavo A. R. Silva, Colin Ian King, me)

    * tag 'fbdev-v5.3' of git://github.com/bzolnier/linux: (62 commits)
    video: fbdev: imxfb: fix a typo in imxfb_probe()
    video: fbdev: s3c-fb: Mark expected switch fall-throughs
    video: fbdev: s3c-fb: fix sparse warnings about using incorrect types
    video: fbdev: don't print error message on framebuffer_alloc() failure
    video: fbdev: intelfb: return -ENOMEM on framebuffer_alloc() failure
    video: fbdev: s3c-fb: return -ENOMEM on framebuffer_alloc() failure
    vga_switcheroo: Depend upon fbcon being built-in, if enabled
    video: fbdev: omap2: remove rfbi
    video: fbdev: atmel_lcdfb: remove redundant initialization to variable ret
    video: fbdev-MMP: Use struct_size() in devm_kzalloc()
    video: fbdev: controlfb: fix warnings about comparing pointer to 0
    efifb: BGRT: Add check for new BGRT status field rotation bits
    jz4740_fb: fix DMA API abuse
    video: fbdev: pvr2fb: fix link error for pvr2fb_pci_exit
    video: fbdev: s3c-fb: add COMPILE_TEST support
    video: fbdev: imxfb: fix sparse warnings about using incorrect types
    video: fbdev: pvr2fb: fix build warning when compiling as module
    fbcon: Export fbcon_update_vcs
    backlight: simplify lcd notifier
    staging/olpc_dcon: Add drm conversion to TODO
    ...

    Linus Torvalds
     
  • Pull EDAC updates from Tony Luck:
    "All the bits that Boris had queued in his tree plus four patches to
    add support for Intel Icelake Xeon and then fix a few corner cases"

    * tag 'please-pull-for_5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
    EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec
    EDAC, skx, i10nm: Fix source ID register offset
    EDAC, i10nm: Check ECC enabling status per channel
    EDAC, i10nm: Add Intel additional Ice-Lake support
    EDAC: Make edac_debugfs_create_x*() return void
    EDAC/aspeed: Remove set but not used variable 'np'
    EDAC/ie31200: Reformat PCI device table
    EDAC/ie31200: Add Intel Coffee Lake CPU support
    EDAC/sifive: Add EDAC platform driver for SiFive SoCs
    EDAC/sb_edac: Remove redundant update of tad_base
    arm64: dts: stratix10: Add SDMMC EDAC node
    EDAC/altera: Add Stratix10 SDMMC support
    arm64: dts: stratix10: Add OCRAM EDAC node
    EDAC/altera: Add Stratix10 OCRAM ECC support
    EDAC/sysfs: Drop device references properly
    EDAC/sysfs: Fix memory leak when creating a csrow object

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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 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
    ...

    Linus Torvalds
     

09 Jul, 2019

26 commits

  • …iederm/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
    ...

    Linus Torvalds
     
  • 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 to kernel dumps

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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//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//arch_status

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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()
    ...

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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()

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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()

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • Pull SMP/hotplug updates from Thomas Gleixner:
    "A small set of updates for SMP and CPU hotplug:

    - Abort disabling secondary CPUs in the freezer when a wakeup is
    pending instead of evaluating it only after all CPUs have been
    offlined.

    - Remove the shared annotation for the strict per CPU cfd_data in the
    smp function call core code.

    - Remove the return values of smp_call_function() and on_each_cpu()
    as they are unconditionally 0. Fixup the few callers which actually
    bothered to check the return value"

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    smp: Remove smp_call_function() and on_each_cpu() return values
    smp: Do not mark call_function_data as shared
    cpu/hotplug: Abort disabling secondary CPUs if wakeup is pending
    cpu/hotplug: Fix notify_cpu_starting() reference in bringup_wait_for_ap()

    Linus Torvalds
     
  • Pull s390 updates from Vasily Gorbik:

    - Improve stop_machine wait logic: replace cpu_relax_yield call in
    generic stop_machine function with a weak stop_machine_yield
    function. This is overridden on s390, which yields the current cpu to
    the neighbouring cpu after a couple of retries, instead of blindly
    giving up the cpu to the hipervisor. This significantly improves
    stop_machine performance on s390 in overcommitted scenarios.

    This includes common code changes which have been Acked by Peter
    Zijlstra and Thomas Gleixner.

    - Improve jump label transformation speed: transform jump labels
    without using stop_machine.

    - Refactoring of the vfio-ccw cp handling, simplifying the code and
    avoiding unneeded allocating/copying.

    - Various vfio-ccw fixes (ccw translation, state machine).

    - Add support for vfio-ap queue interrupt control in the guest. This
    includes s390 kvm changes which have been Acked by Christian
    Borntraeger.

    - Add protected virtualization support for virtio-ccw.

    - Enforce both CONFIG_SMP and CONFIG_HOTPLUG_CPU, which allows to
    remove some code which most likely isn't working at all, besides that
    s390 didn't even compile for !CONFIG_SMP.

    - Support for special flagged EP11 CPRBs for zcrypt.

    - Handle PCI devices with no support for new MIO instructions.

    - Avoid KASAN false positives in reworked stack unwinder.

    - Couple of fixes for the QDIO layer.

    - Convert s390 specific documentation to ReST format.

    - Let s390 crypto modules return -ENODEV instead of -EOPNOTSUPP if
    hardware is missing. This way our modules behave like most other
    modules and which is also what systemd's systemd-modules-load.service
    expects.

    - Replace defconfig with performance_defconfig, so there is one config
    file less to maintain.

    - Remove the SCLP call home device driver, which was never useful.

    - Cleanups all over the place.

    * tag 's390-5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (83 commits)
    docs: s390: s390dbf: typos and formatting, update crash command
    docs: s390: unify and update s390dbf kdocs at debug.c
    docs: s390: restore important non-kdoc parts of s390dbf.rst
    vfio-ccw: Fix the conversion of Format-0 CCWs to Format-1
    s390/pci: correctly handle MIO opt-out
    s390/pci: deal with devices that have no support for MIO instructions
    s390: ap: kvm: Enable PQAP/AQIC facility for the guest
    s390: ap: implement PAPQ AQIC interception in kernel
    vfio: ap: register IOMMU VFIO notifier
    s390: ap: kvm: add PQAP interception for AQIC
    s390/unwind: cleanup unused READ_ONCE_TASK_STACK
    s390/kasan: avoid false positives during stack unwind
    s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
    s390/qdio: (re-)initialize tiqdio list entries
    s390/dasd: Fix a precision vs width bug in dasd_feature_list()
    s390/cio: introduce driver_override on the css bus
    vfio-ccw: make convert_ccw0_to_ccw1 static
    vfio-ccw: Remove copy_ccw_from_iova()
    vfio-ccw: Factor out the ccw0-to-ccw1 transition
    vfio-ccw: Copy CCW data outside length calculation
    ...

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven:

    - switch to using the generic remapping DMA allocator

    - defconfig updates

    * tag 'm68k-for-v5.3-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k: Implement arch_dma_prep_coherent()
    m68k: Use the generic dma coherent remap allocator
    m68k: defconfig: Update defconfigs for v5.2-rc1

    Linus Torvalds
     
  • Pull arm64 updates from Catalin Marinas:

    - arm64 support for syscall emulation via PTRACE_SYSEMU{,_SINGLESTEP}

    - Wire up VM_FLUSH_RESET_PERMS for arm64, allowing the core code to
    manage the permissions of executable vmalloc regions more strictly

    - Slight performance improvement by keeping softirqs enabled while
    touching the FPSIMD/SVE state (kernel_neon_begin/end)

    - Expose a couple of ARMv8.5 features to user (HWCAP): CondM (new
    XAFLAG and AXFLAG instructions for floating point comparison flags
    manipulation) and FRINT (rounding floating point numbers to integers)

    - Re-instate ARM64_PSEUDO_NMI support which was previously marked as
    BROKEN due to some bugs (now fixed)

    - Improve parking of stopped CPUs and implement an arm64-specific
    panic_smp_self_stop() to avoid warning on not being able to stop
    secondary CPUs during panic

    - perf: enable the ARM Statistical Profiling Extensions (SPE) on ACPI
    platforms

    - perf: DDR performance monitor support for iMX8QXP

    - cache_line_size() can now be set from DT or ACPI/PPTT if provided to
    cope with a system cache info not exposed via the CPUID registers

    - Avoid warning on hardware cache line size greater than
    ARCH_DMA_MINALIGN if the system is fully coherent

    - arm64 do_page_fault() and hugetlb cleanups

    - Refactor set_pte_at() to avoid redundant READ_ONCE(*ptep)

    - Ignore ACPI 5.1 FADTs reported as 5.0 (infer from the
    'arm_boot_flags' introduced in 5.1)

    - CONFIG_RANDOMIZE_BASE now enabled in defconfig

    - Allow the selection of ARM64_MODULE_PLTS, currently only done via
    RANDOMIZE_BASE (and an erratum workaround), allowing modules to spill
    over into the vmalloc area

    - Make ZONE_DMA32 configurable

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (54 commits)
    perf: arm_spe: Enable ACPI/Platform automatic module loading
    arm_pmu: acpi: spe: Add initial MADT/SPE probing
    ACPI/PPTT: Add function to return ACPI 6.3 Identical tokens
    ACPI/PPTT: Modify node flag detection to find last IDENTICAL
    x86/entry: Simplify _TIF_SYSCALL_EMU handling
    arm64: rename dump_instr as dump_kernel_instr
    arm64/mm: Drop [PTE|PMD]_TYPE_FAULT
    arm64: Implement panic_smp_self_stop()
    arm64: Improve parking of stopped CPUs
    arm64: Expose FRINT capabilities to userspace
    arm64: Expose ARMv8.5 CondM capability to userspace
    arm64: defconfig: enable CONFIG_RANDOMIZE_BASE
    arm64: ARM64_MODULES_PLTS must depend on MODULES
    arm64: bpf: do not allocate executable memory
    arm64/kprobes: set VM_FLUSH_RESET_PERMS on kprobe instruction pages
    arm64/mm: wire up CONFIG_ARCH_HAS_SET_DIRECT_MAP
    arm64: module: create module allocations without exec permissions
    arm64: Allow user selection of ARM64_MODULE_PLTS
    acpi/arm64: ignore 5.1 FADTs that are reported as 5.0
    arm64: Allow selecting Pseudo-NMI again
    ...

    Linus Torvalds
     

08 Jul, 2019

2 commits

  • Fix up the conflict between "VDSO: Drop implicit common-page-size
    linker flag" and "vdso: pass --be8 to linker if necessary"

    Signed-off-by: Russell King

    Russell King
     
  • * pm-sleep:
    PM: sleep: Drop dev_pm_skip_next_resume_phases()
    ACPI: PM: Drop unused function and function header
    ACPI: PM: Introduce "poweroff" callbacks for ACPI PM domain and LPSS
    ACPI: PM: Simplify and fix PM domain hibernation callbacks
    PCI: PM: Simplify bus-level hibernation callbacks
    PM: ACPI/PCI: Resume all devices during hibernation
    kernel: power: swap: use kzalloc() instead of kmalloc() followed by memset()
    PM: sleep: Update struct wakeup_source documentation
    drivers: base: power: remove wakeup_sources_stats_dentry variable
    PM: suspend: Rename pm_suspend_via_s2idle()
    PM: sleep: Show how long dpm_suspend_start() and dpm_suspend_end() take
    PM: hibernate: powerpc: Expose pfn_is_nosave() prototype

    Rafael J. Wysocki
     

07 Jul, 2019

3 commits

  • All fpu__xstate_clear_all_cpu_caps() does is to invoke one simple
    function since commit

    73e3a7d2a7c3b ("x86/fpu: Remove the explicit clearing of XSAVE dependent features")

    so invoke that function directly and remove the wrapper.

    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Thomas Gleixner
    Link: https://lkml.kernel.org/r/20190704060743.rvew4yrjd6n33uzx@linutronix.de

    Sebastian Andrzej Siewior
     
  • The command line option `no387' is designed to disable the FPU
    entirely. This only 'works' with CONFIG_MATH_EMULATION enabled.

    But on 64bit this cannot work because user space expects SSE to work which
    required basic FPU support. MATH_EMULATION does not help because SSE is not
    emulated.

    The command line option `nofxsr' should also be limited to 32bit because
    FXSR is part of the required flags on 64bit so turning it off is not
    possible.

    Clearing X86_FEATURE_FPU without emulation enabled will not work anyway and
    hang in fpu__init_system_early_generic() before the console is enabled.

    Setting additioal dependencies, ensures that the CPU still boots on a
    modern CPU. Otherwise, dropping FPU will leave FXSR enabled causing the
    kernel to crash early in fpu__init_system_mxcsr().

    With XSAVE support it will crash in fpu__init_cpu_xstate(). The problem is
    that xsetbv() with XMM set and SSE cleared is not allowed. That means
    XSAVE has to be disabled. The XSAVE support is disabled in
    fpu__init_system_xstate_size_legacy() but it is too late. It can be
    removed, it has been added in commit

    1f999ab5a1360 ("x86, xsave: Disable xsave in i387 emulation mode")

    to use `no387' on a CPU with XSAVE support.

    All this happens before console output.

    After hat, the next possible crash is in RAID6 detect code because MMX
    remained enabled. With a 3DNOW enabled config it will explode in memcpy()
    for instance due to kernel_fpu_begin() but this is unconditionally enabled.

    This is enough to boot a Debian Wheezy on a 32bit qemu "host" CPU which
    supports everything up to XSAVES, AVX2 without 3DNOW. Later, Debian
    increased the minimum requirements to i686 which means it does not boot
    userland atleast due to CMOV.

    After masking the additional features it still keeps SSE4A and 3DNOW*
    enabled (if present on the host) but those are unused in the kernel.

    Restrict `no387' and `nofxsr' otions to 32bit only. Add dependencies for
    FPU, FXSR to additionaly mask CMOV, MMX, XSAVE if FXSR or FPU is cleared.

    Reported-by: Vegard Nossum
    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Thomas Gleixner
    Link: https://lkml.kernel.org/r/20190703083247.57kjrmlxkai3vpw3@linutronix.de

    Sebastian Andrzej Siewior
     
  • Pull MIPS fixes from Paul Burton:
    "A few more MIPS fixes:

    - Fix a silly typo in virt_addr_valid which led to completely bogus
    behavior (that happened to stop tripping up hardened usercopy
    despite being broken).

    - Fix UART parity setup on AR933x systems.

    - A build fix for non-Linux build machines.

    - Have the 'all' make target build DTBs, primarily to fit in with the
    behavior of scripts/package/builddeb.

    - Handle an execution hazard in TLB exceptions that use KScratch
    registers, which could inadvertently clobber the $1 register on
    some generally higher-end out-of-order CPUs.

    - A MAINTAINERS update to fix the path to the NAND driver for Ingenic
    systems"

    * tag 'mips_fixes_5.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
    MAINTAINERS: Correct path to moved files
    MIPS: Add missing EHB in mtc0 -> mfc0 sequence.
    MIPS: have "plain" make calls build dtbs for selected platforms
    MIPS: fix build on non-linux hosts
    MIPS: ath79: fix ar933x uart parity mode
    MIPS: Fix bounds check virt_addr_valid

    Linus Torvalds
     

06 Jul, 2019

1 commit

  • Pull kvm fixes from Paolo Bonzini:
    "x86 bugfix patches and one compilation fix for ARM"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: arm64/sve: Fix vq_present() macro to yield a bool
    KVM: LAPIC: Fix pending interrupt in IRR blocked by software disable LAPIC
    KVM: nVMX: Change KVM_STATE_NESTED_EVMCS to signal vmcs12 is copied from eVMCS
    KVM: nVMX: Allow restore nested-state to enable eVMCS when vCPU in SMM
    KVM: x86: degrade WARN to pr_warn_ratelimited

    Linus Torvalds
     

05 Jul, 2019

2 commits

  • For non-static-inlines, debug.c already had non-compliant function
    header docs. So move the pure prototype kdocs of
    ("s390: include/asm/debug.h add kerneldoc markups")
    from debug.h to debug.c and merge them with the old function docs.
    Also, I had the impression that kdoc typically is at the implementation
    in the compile unit rather than at the prototype in the header file.

    While at it, update the short kdoc description to distinguish the
    different functions. And a few more consistency cleanups.

    Added a new kdoc for debug_set_critical() since debug.h comments it
    as part of the API.

    Signed-off-by: Steffen Maier
    Acked-by: Christian Borntraeger
    Message-Id:
    Signed-off-by: Vasily Gorbik

    Steffen Maier
     
  • The original implementation of vq_present() relied on aggressive
    inlining in order for the compiler to know that the code is
    correct, due to some const-casting issues. This was causing sparse
    and clang to complain, while GCC compiled cleanly.

    Commit 0c529ff789bc addressed this problem, but since vq_present()
    is no longer a function, there is now no implicit casting of the
    returned value to the return type (bool).

    In set_sve_vls(), this uncast bit value is compared against a bool,
    and so may spuriously compare as unequal when both are nonzero. As
    a result, KVM may reject valid SVE vector length configurations as
    invalid, and vice versa.

    Fix it by forcing the returned value to a bool.

    Signed-off-by: Zhang Lei
    Fixes: 0c529ff789bc ("KVM: arm64: Implement vq_present() as a macro")
    Signed-off-by: Dave Martin [commit message rewrite]
    Cc: Viresh Kumar
    Signed-off-by: Paolo Bonzini

    Zhang Lei