11 Jul, 2019

10 commits

  • RAPL MMIO interface uses 64 bit registers, thus force use 64 bit register
    for all the RAPL code.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • Split intel_rapl.c to intel_rapl_common.c and intel_rapl_msr.c, where
    intel_rapl_common.c contains the common code that can be used by both MSR
    and MMIO interface.
    intel_rapl_msr.c contains the implementation of RAPL MSR interface.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • There are still some places in the common code that have hardcoded
    MSR access, convert them to follow the abstracted register access.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • Previously, there are three functions:
    rapl_register_psys(), which registers platform rapl domain.
    rapl_register_powercap(), which registers powercap control type.
    rapl_unregsiter_powercap(), which unregisters platform rapl domain and
    powercap control type.

    This is confusing as the function name does not describe what it does
    clearly.

    With this patch, the three functions are removed, and two new functions
    rapl_register_platform_domain()/rapl_unregister_platform_domain() are
    introduced instead, and they do exactly what their function name describes.

    Plus, as part of the common code, hardcoded MSR accesses in these functions
    are converted to follow the abstracted register access.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • MSR and MMIO RAPL interfaces have different ways to access the registers,
    thus in order to abstract the register access operations, two callbacks,
    .read_raw()/.write_raw() are introduced, and they should be implemented by
    MSR RAPL and MMIO RAPL interface driver respectly.

    This patch implements them for the MSR I/F only.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • MSR and MMIO RAPL interface have different sets of registers, thus the
    RAPL register address should be obtained from interface specific
    structure, i.e. struct rapl_if_private, instead.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • Introduce a new structure, rapl_if_private, to save the private data
    for different RAPL Interface.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • Create a new header file for the common definitions that might be used
    by different RAPL Interface.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • enum rapl_domain_reg_id is defined for the RAPL registers for each RAPL
    domain, thus use it whenever possible.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • To support both MSR and MMIO Interface, use 'reg' to discribe RAPL
    registers instead of 'msr'.

    Reviewed-by: Pandruvada, Srinivas
    Tested-by: Pandruvada, Srinivas
    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     

10 Jul, 2019

11 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 sound updates from Takashi Iwai:
    "Many updates in this development cycle are found in ASoC where it got
    a wide range of changes for the continued refactoring.

    Some highlights are below.

    ASoC:

    - Continued refactoring work by Morimoto-san toward the full
    componentization; the changes are seen allover the places

    - Support for force disconnecting muxes in DAPM

    - Continued development of ASoC Intel SOF stuff

    - New drivers for Cirrus Logic CS47L35, CS47L85 and CS47L90, Conexant
    CX2072X, Realtek RT1011 and RT1308

    HD-audio:

    - More fixes and adjustments for ASoC SOF HD-audio

    - Fix for resume problem on some Realtek codecs

    USB-audio:

    - A few fixes for the issues reported by syzbot USB fuzzer

    - Fix for UAC2 extension unit parser

    - Quirks for Line6 Helix, Emgaic Unitor 8

    FireWire:

    - Lots of code refactoring and fixes in most of its components"

    * tag 'sound-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (626 commits)
    ALSA: firewire-lib: code refactoring for local variables
    ALSA: firewire-lib: code refactoring for post operation to data block counter
    ALSA: firewire-lib: code refactoring for error path of parser for CIP header
    ALSA: firewire-lib: fix different data block counter between probed event and transferred isochronous packet
    ALSA: firewire-lib: fix initial value of data block count for IR context without CIP_DBC_IS_END_EVENT
    ALSA: firewire-lib/fireface: fix initial value of data block counter for IR context with CIP_NO_HEADER
    ALSA: firewire-lib: fix invalid length of rx packet payload for tracepoint events
    ALSA: usb-audio: fix Line6 Helix audio format rates
    firewire-motu: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: firewire-digi00x: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: dice: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: oxfw: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: fireworks: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: bebob: fix wrong reference count for stream functionality at error path of rawmidi interface
    ASoC: SOF: Intel: implement runtime idle for CNL/APL
    ASoC: SOF: add runtime idle callback
    ASoC: hdac_hdmi: report codec link up/down status to bus
    ASoC: SOF: debug: fix possible memory leak in sof_dfsentry_write()
    ASoC: sunxi: sun50i-codec-analog: Add earpiece
    ASoC: rt5665: remove redundant assignment to variable idx
    ...

    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 media updates from Mauro Carvalho Chehab:

    - new Atmel microship ISC driver

    - coda has gained support for mpeg2 and mpeg4

    - cxusb gained support for analog TV

    - rockchip staging driver was split into two separate staging drivers

    - added a new staging driver for Allegro DVT video IP core

    - added a new staging driver for Amlogic Meson video decoder

    - lots of improvements and cleanups

    * tag 'media/v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (398 commits)
    media: allegro: use new v4l2_m2m_ioctl_try_encoder_cmd funcs
    media: doc-rst: Fix typos
    media: radio-raremono: change devm_k*alloc to k*alloc
    media: stv0297: fix frequency range limit
    media: rc: Prefer KEY_NUMERIC_* for number buttons on remotes
    media: dvb_frontend: split dvb_frontend_handle_ioctl function
    media: mceusb: disable "nonsensical irdata" messages
    media: rc: remove redundant dev_err message
    media: cec-notifier: add new notifier functions
    media: cec: add struct cec_connector_info support
    media: cec-notifier: rename variables, check kstrdup and n->conn_name
    media: MAINTAINERS: Add maintainers for Media Controller
    media: staging: media: tegra-vde: Defer dmabuf's unmapping
    media: staging: media: tegra-vde: Add IOMMU support
    media: hdpvr: fix locking and a missing msleep
    media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom()
    media: atmel: atmel-isc: fix i386 build error
    media: v4l2-ctrl: Move compound control initialization
    media: hantro: Use vb2_get_buffer
    media: pci: cx88: Change the type of 'missed' to u64
    ...

    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 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
    ...

    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 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

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

    Linus Torvalds
     

09 Jul, 2019

19 commits

  • …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

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

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

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

    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 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

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

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

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

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

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

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

    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