1. 18 Nov, 2021 1 commit
    • Rafael J. Wysocki's avatar
      Merge branch 'powercap' · 47b577ae
      Rafael J. Wysocki authored
      Merge a Dynamic Thermal Power Management (DTPM) framework fix for
      5.16-rc2.
      
      * powercap:
        powercap: DTPM: Fix suspend failure and kernel warning
      47b577ae
  2. 10 Nov, 2021 21 commits
    • Lukasz Luba's avatar
      Documentation: power: Describe 'advanced' and 'simple' EM models · 08374410
      Lukasz Luba authored
      The Energy Model (EM) can be registered in two ways:
      
       1) Using a helper function, which under the hood relies on OPP framework
          and DT entry in CPU node: 'dynamic-power-coefficient'. This is
          a 'simple' EM because it's tied to the math formula:
          Power = dynamic-power-coefficient * V^2 * f
      
       2) Using em_dev_register_perf_domain() API function with a driver
          custom callback which provides power for each performance state.
      
          This is 'advanced' EM, since it can better reflect real power
          measurements for each performance state. It's not limited to any
          math formula and can better reflect real physics of the device.
      
      Add description of these two methods to the documentation, so developers
      could choose the suitable registration method (option).
      Signed-off-by: default avatarLukasz Luba <lukasz.luba@arm.com>
      [ rjw: Changelog edits ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      08374410
    • Lukasz Luba's avatar
      Documentation: power: Add description about new callback for EM registration · d704aa0d
      Lukasz Luba authored
      The Energy Model (EM) registration for CPUs should now be done using
      a dedicated callback added recently into CPUFreq framework and drivers.
      
      Commit c17495b0 ("cpufreq: Add callback to register with energy model")
      
      The callback guaranties that the EM registration is called at the right
      time during driver setup. To avoid mistakes update the documentation
      to align with the existing code implementation.
      Signed-off-by: default avatarLukasz Luba <lukasz.luba@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d704aa0d
    • Daniel Lezcano's avatar
      powercap: DTPM: Fix suspend failure and kernel warning · 4d1cd144
      Daniel Lezcano authored
      When the ENERGY_MODEL and DTPM_CPU are enabled but actually without
      any energy model, at cpu hotplug time, the dead cpuhp callback fails
      leading to the warning.
      
      Actually, the check could be simplified and we only do an action if
      the dtpm cpu is enabled, otherwise we bail out without error.
      
      Fixes: 7a89d7ea ("powercap/drivers/dtpm: Simplify the dtpm table")
      Reported-by: default avatarKenneth R. Crudup <kenny@panix.com>
      Tested-by: default avatarKenneth R. Crudup <kenny@panix.com>
      Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4d1cd144
    • Linus Torvalds's avatar
      Merge tag 'thermal-5.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 88100752
      Linus Torvalds authored
      Pull more thermal control updates from Rafael Wysocki:
       "These fix two issues in the thermal core and one in the int340x
        thermal driver.
      
        Specifics:
      
         - Replace pr_warn() with pr_warn_once() in user_space_bind() to
           reduce kernel log noise (Rafael Wysocki).
      
         - Extend the RFIM mailbox interface in the int340x thermal driver to
           return 64 bit values to allow all values returned by the hardware
           to be handled correctly (Srinivas Pandruvada).
      
         - Fix possible NULL pointer dereferences in the of_thermal_ family of
           functions (Subbaraman Narayanamurthy)"
      
      * tag 'thermal-5.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: Replace pr_warn() with pr_warn_once() in user_space_bind()
        thermal: Fix NULL pointer dereferences in of_thermal_ functions
        thermal/drivers/int340x: processor_thermal: Suppot 64 bit RFIM responses
      88100752
    • Linus Torvalds's avatar
      Merge tag 'pm-5.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d422555f
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "These fix three intel_pstate driver regressions, fix locking in the
        core code suspending and resuming devices during system PM
        transitions, fix the handling of cpuidle drivers based on runtime PM
        during system-wide suspend, fix two issues in the operating
        performance points (OPP) framework and resource-managed helpers to it.
      
        Specifics:
      
         - Fix two intel_pstate driver regressions related to the HWP
           interrupt handling added recently (Srinivas Pandruvada).
      
         - Fix intel_pstate driver regression introduced during the 5.11 cycle
           and causing HWP desired performance to be mishandled in some cases
           when switching driver modes and during system suspend and shutdown
           (Rafael Wysocki).
      
         - Fix system-wide device suspend and resume locking to avoid
           deadlocks when device objects are deleted during a system-wide PM
           transition (Rafael Wysocki).
      
         - Modify system-wide suspend of devices to prevent cpuidle drivers
           based on runtime PM from misbehaving during the "no IRQ" phase of
           it (Ulf Hansson).
      
         - Fix return value of _opp_add_static_v2() helper (YueHaibing).
      
         - Fix required-opp handle count (Pavankumar Kondeti).
      
         - Add resource managed OPP helpers, update dev_pm_opp_attach_genpd(),
           update their devfreq users, and make minor DT binding change
           (Dmitry Osipenko)"
      
      * tag 'pm-5.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM: sleep: Avoid calling put_device() under dpm_list_mtx
        cpufreq: intel_pstate: Clear HWP Status during HWP Interrupt enable
        cpufreq: intel_pstate: Fix unchecked MSR 0x773 access
        cpufreq: intel_pstate: Clear HWP desired on suspend/shutdown and offline
        PM: sleep: Fix runtime PM based cpuidle support
        dt-bindings: opp: Allow multi-worded OPP entry name
        opp: Fix return in _opp_add_static_v2()
        PM / devfreq: tegra30: Check whether clk_round_rate() returns zero rate
        PM / devfreq: tegra30: Use resource-managed helpers
        PM / devfreq: Add devm_devfreq_add_governor()
        opp: Add more resource-managed variants of dev_pm_opp_of_add_table()
        opp: Change type of dev_pm_opp_attach_genpd(names) argument
        opp: Fix required-opps phandle array count check
      d422555f
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 285fc3db
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "These add support for a new ACPI device configuration object called
        _DSC, fix some issues including one recent regression, add two new
        items to quirk lists and clean up assorted pieces of code.
      
        Specifics:
      
         - Add support for new ACPI device configuration object called _DSC
           ("Deepest State for Configuration") to allow certain devices to be
           probed without changing their power states, document it and make
           two drivers use it (Sakari Ailus, Rajmohan Mani).
      
         - Fix device wakeup power reference counting broken recently by
           mistake (Rafael Wysocki).
      
         - Drop unused symbol and macros depending on it from acgcc.h (Rafael
           Wysocki).
      
         - Add HP ZHAN 66 Pro to the "no EC wakeup" quirk list (Binbin Zhou).
      
         - Add Xiaomi Mi Pad 2 to the backlight quirk list and drop an unused
           piece of data from all of the list entries (Hans de Goede).
      
         - Fix register read accesses handling in the Intel PMIC operation
           region driver (Hans de Goede).
      
         - Clean up static variables initialization in the EC driver
           (wangzhitong)"
      
      * tag 'acpi-5.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Documentation: ACPI: Fix non-D0 probe _DSC object example
        ACPI: Drop ACPI_USE_BUILTIN_STDARG ifdef from acgcc.h
        ACPI: PM: Fix device wakeup power reference counting error
        ACPI: video: use platform backlight driver on Xiaomi Mi Pad 2
        ACPI: video: Drop dmi_system_id.ident settings from video_detect_dmi_table[]
        ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
        ACPI: EC: Remove initialization of static variables to false
        ACPI: EC: Use ec_no_wakeup on HP ZHAN 66 Pro
        at24: Support probing while in non-zero ACPI D state
        media: i2c: imx319: Support device probe in non-zero ACPI D state
        ACPI: Add a convenience function to tell a device is in D0 state
        Documentation: ACPI: Document _DSC object usage for enum power state
        i2c: Allow an ACPI driver to manage the device's power state during probe
        ACPI: scan: Obtain device's desired enumeration power state
      285fc3db
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · e68a7d35
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
       "A bunch of driver updates, no new driver or controller support this
        time though:
      
         - Another pile of idxd updates
      
         - pm routines cleanup for at_xdmac driver
      
         - Correct handling of callback_result for few drivers
      
         - zynqmp_dma driver updates and descriptor management refinement
      
         - Hardware handshaking support for dw-axi-dmac
      
         - Support for remotely powered controllers in Qcom bam dma
      
         - tegra driver updates"
      
      * tag 'dmaengine-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (69 commits)
        dmaengine: ti: k3-udma: Set r/tchan or rflow to NULL if request fail
        dmaengine: ti: k3-udma: Set bchan to NULL if a channel request fail
        dmaengine: stm32-dma: avoid 64-bit division in stm32_dma_get_max_width
        dmaengine: fsl-edma: support edma memcpy
        dmaengine: idxd: fix resource leak on dmaengine driver disable
        dmaengine: idxd: cleanup completion record allocation
        dmaengine: zynqmp_dma: Correctly handle descriptor callbacks
        dmaengine: xilinx_dma: Correctly handle cyclic descriptor callbacks
        dmaengine: altera-msgdma: Correctly handle descriptor callbacks
        dmaengine: at_xdmac: fix compilation warning
        dmaengine: dw-axi-dmac: Simplify assignment in dma_chan_pause()
        dmaengine: qcom: bam_dma: Add "powered remotely" mode
        dt-bindings: dmaengine: bam_dma: Add "powered remotely" mode
        dmaengine: sa11x0: Mark PM functions as __maybe_unused
        dmaengine: switch from 'pci_' to 'dma_' API
        dmaengine: ioat: switch from 'pci_' to 'dma_' API
        dmaengine: hsu: switch from 'pci_' to 'dma_' API
        dmaengine: hisi_dma: switch from 'pci_' to 'dma_' API
        dmaengine: dw: switch from 'pci_' to 'dma_' API
        dmaengine: dw-edma-pcie: switch from 'pci_' to 'dma_' API
        ...
      e68a7d35
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v5.16' of... · d4efc0de
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Benson Leung:
       "cros_ec_typec:
      
         - Clean up use of cros_ec_check_features
      
        cros_ec_*:
      
         - Rename and move cros_ec_pd_command to cros_ec_command, and make
           changes to cros_ec_typec and cros_ec_proto to use the new common
           command, reducing duplication.
      
        sensorhub:
      
         - simplify getting .driver_data in cros_ec_sensors_core and
           cros_ec_sensorhub
      
        misc:
      
         - Maintainership change. Enric Balletbo i Serra has moved on from
           Collabora, so removing him from chrome/platform maintainers. Thanks
           for all of your hard work maintaining this, Enric, and best of luck
           to you in your new role!
      
         - Add Prashant Malani as driver maintainer for cros_ec_typec.c and
           cros_usbpd_notify. He was already principal contributor of these
           drivers"
      
      * tag 'tag-chrome-platform-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: cros_ec_proto: Use ec_command for check_features
        platform/chrome: cros_ec_proto: Use EC struct for features
        MAINTAINERS: Chrome: Drop Enric Balletbo i Serra
        platform/chrome: cros_ec_typec: Use cros_ec_command()
        platform/chrome: cros_ec_proto: Add version for ec_command
        platform/chrome: cros_ec_proto: Make data pointers void
        platform/chrome: cros_usbpd_notify: Move ec_command()
        platform/chrome: cros_usbpd_notify: Rename cros_ec_pd_command()
        platform/chrome: cros_ec: Fix spelling mistake "responsed" -> "response"
        platform/chrome: cros_ec_sensorhub: simplify getting .driver_data
        iio: common: cros_ec_sensors: simplify getting .driver_data
        platform/chrome: cros-ec-typec: Cleanup use of check_features
        platform/chrome: cros_ec_proto: Fix check_features ret val
        MAINTAINERS: Add Prashant's maintainership of cros_ec drivers
      d4efc0de
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 89fa0be0
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
      
       - Fix double-evaluation of 'pte' macro argument when using 52-bit PAs
      
       - Fix signedness of some MTE prctl PR_* constants
      
       - Fix kmemleak memory usage by skipping early pgtable allocations
      
       - Fix printing of CPU feature register strings
      
       - Remove redundant -nostdlib linker flag for vDSO binaries
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
        arm64: Track no early_pgtable_alloc() for kmemleak
        arm64: mte: change PR_MTE_TCF_NONE back into an unsigned long
        arm64: vdso: remove -nostdlib compiler flag
        arm64: arm64_ftr_reg->name may not be a human-readable string
      89fa0be0
    • Linus Torvalds's avatar
      Merge tag 'arm-fixes-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 3f55f177
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "This is one set of fixes for the NXP/FSL DPAA2 drivers, addressing a
        few minor issues. I received these just after sending out the last
        v5.15 fixes, and nothing in here seemed urgent enough for a quick
        follow-up"
      
      * tag 'arm-fixes-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read
        soc: fsl: dpio: use the combined functions to protect critical zone
        soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id
      3f55f177
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · e8f023ca
      Linus Torvalds authored
      Pull asm-generic cleanup from Arnd Bergmann:
       "This is a single cleanup from Peter Collingbourne, removing some dead
        code"
      
      * tag 'asm-generic-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        arch: remove unused function syscall_set_arguments()
      e8f023ca
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.16b-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · bf98ecbb
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - a series to speed up the boot of Xen PV guests
      
       - some cleanups in Xen related code
      
       - replacement of license texts with the appropriate SPDX headers and
         fixing of wrong SPDX headers in Xen header files
      
       - a small series making paravirtualized interrupt masking much simpler
         and at the same time removing complaints of objtool
      
       - a fix for Xen ballooning hogging workqueues for too long
      
       - enablement of the Xen pciback driver for Arm
      
       - some further small fixes/enhancements
      
      * tag 'for-linus-5.16b-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (22 commits)
        xen/balloon: fix unused-variable warning
        xen/balloon: rename alloc/free_xenballooned_pages
        xen/balloon: add late_initcall_sync() for initial ballooning done
        x86/xen: remove 32-bit awareness from startup_xen
        xen: remove highmem remnants
        xen: allow pv-only hypercalls only with CONFIG_XEN_PV
        x86/xen: remove 32-bit pv leftovers
        xen-pciback: allow compiling on other archs than x86
        x86/xen: switch initial pvops IRQ functions to dummy ones
        x86/xen: remove xen_have_vcpu_info_placement flag
        x86/pvh: add prototype for xen_pvh_init()
        xen: Fix implicit type conversion
        xen: fix wrong SPDX headers of Xen related headers
        xen/pvcalls-back: Remove redundant 'flush_workqueue()' calls
        x86/xen: Remove redundant irq_enter/exit() invocations
        xen-pciback: Fix return in pm_ctrl_init()
        xen/x86: restrict PV Dom0 identity mapping
        xen/x86: there's no highmem anymore in PV mode
        xen/x86: adjust handling of the L3 user vsyscall special page table
        xen/x86: adjust xen_set_fixmap()
        ...
      bf98ecbb
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 4287af35
      Linus Torvalds authored
      Pull libnvdimm update from Dan Williams:
       "A single cleanup that precedes some deeper PMEM/DAX reworks that did
        not settle in time for v5.16:
      
         - Continue the cleanup of the dax api in preparation for a dax-device
           block-device divorce"
      
      * tag 'libnvdimm-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        nvdimm/pmem: move dax_attribute_group from dax to pmem
      4287af35
    • Linus Torvalds's avatar
      Merge tag 'linux-watchdog-5.16-rc1' of git://www.linux-watchdog.org/linux-watchdog · 89d714ab
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
      
       - f71808e_wdt: convert to watchdog framework
      
       - db8500_wdt: Rename driver (was ux500_wdt.c)
      
       - sunxi: Add compatibles for R329 and D1
      
       - mtk: add disable_wdt_extrst support
      
       - several other small fixes and improvements
      
      * tag 'linux-watchdog-5.16-rc1' of git://www.linux-watchdog.org/linux-watchdog: (30 commits)
        watchdog: db8500_wdt: Rename symbols
        watchdog: db8500_wdt: Rename driver
        watchdog: ux500_wdt: Drop platform data
        watchdog: bcm63xx_wdt: fix fallthrough warning
        watchdog: iTCO_wdt: No need to stop the timer in probe
        watchdog: s3c2410: describe driver in KConfig
        watchdog: sp5100_tco: Add support for get_timeleft
        watchdog: mtk: add disable_wdt_extrst support
        dt-bindings: watchdog: mtk-wdt: add disable_wdt_extrst support
        watchdog: rza_wdt: Use semicolons instead of commas
        watchdog: mlx-wdt: Use regmap_write_bits()
        watchdog: rti-wdt: Make use of the helper function devm_platform_ioremap_resource()
        watchdog: iTCO_wdt: Make use of the helper function devm_platform_ioremap_resource()
        watchdog: ar7_wdt: Make use of the helper function devm_platform_ioremap_resource_byname()
        watchdog: sunxi_wdt: Add support for D1
        dt-bindings: watchdog: sunxi: Add compatibles for D1
        ar7: fix kernel builds for compiler test
        dt-bindings: watchdog: sunxi: Add compatibles for R329
        watchdog: meson_gxbb_wdt: add timeout parameter
        watchdog: meson_gxbb_wdt: add nowayout parameter
        ...
      89d714ab
    • Linus Torvalds's avatar
      Merge tag 'rproc-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · bd485d27
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
       "The remoteproc repo is moved to a new path on git.kernel.org, to allow
        Mathieu push access to the branches.
      
        Support for the Mediatek MT8195 SCP was added, the related DeviceTree
        binding was converted to YAML and MT8192 SCP was documented as well.
      
        Amlogic Meson6, Meson8, Meson8b and Meson8m2 has an ARC core to aid in
        resuming the system after suspend, a new remoteproc driver for booting
        this core is introduced.
      
        A new driver to support the DSP processor found on NXP i.MX8QM,
        i.MX8QXP, i.MX8MP and i.MX8ULP is added.
      
        The Qualcomm modem and TrustZone based remoteproc drivers gains
        support for the modem in SC7280 and MSM8996 gains support for a
        missing power-domain.
      
        Throughout the Qualcomm drivers, the support for informing the
        always-on power coprocessor about the state of each remoteproc is
        reworked to avoid complications related to our use of genpd and the
        system suspend state.
      
        Lastly a number of small fixes are found throughout the drivers and
        framework"
      
      * tag 'rproc-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (39 commits)
        remoteproc: Remove vdev_to_rvdev and vdev_to_rproc from remoteproc API
        remoteproc: omap_remoteproc: simplify getting .driver_data
        remoteproc: qcom_q6v5_mss: Use devm_platform_ioremap_resource_byname() to simplify code
        remoteproc: Fix a memory leak in an error handling path in 'rproc_handle_vdev()'
        remoteproc: Fix spelling mistake "atleast" -> "at least"
        remoteproc: imx_dsp_rproc: mark PM functions as __maybe_unused
        remoteproc: imx_dsp_rproc: Correct the comment style of copyright
        dt-bindings: dsp: fsl: Update binding document for remote proc driver
        remoteproc: imx_dsp_rproc: Add remoteproc driver for DSP on i.MX
        remoteproc: imx_rproc: Add IMX_RPROC_SCU_API method
        remoteproc: imx_rproc: Move common structure to header file
        rpmsg: char: Remove useless include
        remoteproc: meson-mx-ao-arc: fix a bit test
        remoteproc: mss: q6v5-mss: Add modem support on SC7280
        dt-bindings: remoteproc: qcom: Update Q6V5 Modem PIL binding
        remoteproc: qcom: pas: Add SC7280 Modem support
        dt-bindings: remoteproc: qcom: pas: Add SC7280 MPSS support
        remoteproc: qcom: pas: Use the same init resources for MSM8996 and MSM8998
        MAINTAINERS: Update remoteproc repo url
        dt-bindings: remoteproc: k3-dsp: Cleanup SoC compatible from DT example
        ...
      bd485d27
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · becc1fb4
      Linus Torvalds authored
      Pull rpmsg updates from Bjorn Andersson:
       "For the GLINK implementation this adds support for splitting outgoing
        messages that are too large to fit in the fifo, it introduces the use
        of "read notifications", to avoid polling in the case where the
        outgoing fifo is full and a few bugs are squashed.
      
        The return value of rpmsg_create_ept() for when RPMSG is disabled is
        corrected to return a valid error, the Mediatek rpmsg driver is
        updated to match the DT binding and a couple of cleanups are done in
        the virtio rpmsg driver"
      
      * tag 'rpmsg-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        rpmsg: glink: Send READ_NOTIFY command in FIFO full case
        rpmsg: glink: Remove channel decouple from rpdev release
        rpmsg: glink: Remove the rpmsg dev in close_ack
        rpmsg: glink: Add TX_DATA_CONT command while sending
        rpmsg: virtio_rpmsg_bus: use dev_warn_ratelimited for msg with no recipient
        rpmsg: virtio: Remove unused including <linux/of_device.h>
        rpmsg: Change naming of mediatek rpmsg property
        rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
        rpmsg: glink: Replace strncpy() with strscpy_pad()
      becc1fb4
    • Rafael J. Wysocki's avatar
      Merge branch 'thermal-int340x' · 61988e0a
      Rafael J. Wysocki authored
      Merge int340x thermal driver fix for 5.16-rc1.
      
      * thermal-int340x:
        thermal/drivers/int340x: processor_thermal: Suppot 64 bit RFIM responses
      61988e0a
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-opp' and 'pm-cpufreq' · dcc0b6f2
      Rafael J. Wysocki authored
      Merge operating performance points (OPP) framework updates for and
      intel_pstate driver fixes for 5.16-rc1.
      
      * pm-opp:
        dt-bindings: opp: Allow multi-worded OPP entry name
        opp: Fix return in _opp_add_static_v2()
        PM / devfreq: tegra30: Check whether clk_round_rate() returns zero rate
        PM / devfreq: tegra30: Use resource-managed helpers
        PM / devfreq: Add devm_devfreq_add_governor()
        opp: Add more resource-managed variants of dev_pm_opp_of_add_table()
        opp: Change type of dev_pm_opp_attach_genpd(names) argument
        opp: Fix required-opps phandle array count check
      
      * pm-cpufreq:
        cpufreq: intel_pstate: Clear HWP Status during HWP Interrupt enable
        cpufreq: intel_pstate: Fix unchecked MSR 0x773 access
        cpufreq: intel_pstate: Clear HWP desired on suspend/shutdown and offline
      dcc0b6f2
    • Rafael J. Wysocki's avatar
      Merge branches 'acpica', 'acpi-ec', 'acpi-pmic' and 'acpi-video' · 314c6e2b
      Rafael J. Wysocki authored
      Merge assorted fixes and cleanups and one new backlight quirk list
      item for 5.16-rc1.
      
      * acpica:
        ACPI: Drop ACPI_USE_BUILTIN_STDARG ifdef from acgcc.h
      
      * acpi-ec:
        ACPI: EC: Remove initialization of static variables to false
        ACPI: EC: Use ec_no_wakeup on HP ZHAN 66 Pro
      
      * acpi-pmic:
        ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
      
      * acpi-video:
        ACPI: video: use platform backlight driver on Xiaomi Mi Pad 2
        ACPI: video: Drop dmi_system_id.ident settings from video_detect_dmi_table[]
      314c6e2b
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-dsc' · 2c49daba
      Rafael J. Wysocki authored
      Merge new ACPI device configuration object _DSC support for 5.16-rc1.
      
      * acpi-dsc:
        Documentation: ACPI: Fix non-D0 probe _DSC object example
        at24: Support probing while in non-zero ACPI D state
        media: i2c: imx319: Support device probe in non-zero ACPI D state
        ACPI: Add a convenience function to tell a device is in D0 state
        Documentation: ACPI: Document _DSC object usage for enum power state
        i2c: Allow an ACPI driver to manage the device's power state during probe
        ACPI: scan: Obtain device's desired enumeration power state
      2c49daba
    • Sakari Ailus's avatar
      Documentation: ACPI: Fix non-D0 probe _DSC object example · dff5acfd
      Sakari Ailus authored
      The original patch adding the example used _DSC Name when Method was
      intended. Fix this.
      
      Also replace spaces used for indentation with tabs in the example.
      
      Fixes: ed66f12b ("Documentation: ACPI: Document _DSC object usage for enum power state")
      Reported-by: default avatarBingbu Cao <bingbu.cao@intel.com>
      Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      dff5acfd
  3. 09 Nov, 2021 18 commits
    • Linus Torvalds's avatar
      Merge tag 'for-5.16/drivers-2021-11-09' of git://git.kernel.dk/linux-block · cb690f52
      Linus Torvalds authored
      Pull more block driver updates from Jens Axboe:
      
       - Last series adding error handling support for add_disk() in drivers.
         After this one, and once the SCSI side has been merged, we can
         finally annotate add_disk() as must_check. (Luis)
      
       - bcache fixes (Coly)
      
       - zram fixes (Ming)
      
       - ataflop locking fix (Tetsuo)
      
       - nbd fixes (Ye, Yu)
      
       - MD merge via Song
            - Cleanup (Yang)
            - sysfs fix (Guoqing)
      
       - Misc fixes (Geert, Wu, luo)
      
      * tag 'for-5.16/drivers-2021-11-09' of git://git.kernel.dk/linux-block: (34 commits)
        bcache: Revert "bcache: use bvec_virt"
        ataflop: Add missing semicolon to return statement
        floppy: address add_disk() error handling on probe
        ataflop: address add_disk() error handling on probe
        block: update __register_blkdev() probe documentation
        ataflop: remove ataflop_probe_lock mutex
        mtd/ubi/block: add error handling support for add_disk()
        block/sunvdc: add error handling support for add_disk()
        z2ram: add error handling support for add_disk()
        nvdimm/pmem: use add_disk() error handling
        nvdimm/pmem: cleanup the disk if pmem_release_disk() is yet assigned
        nvdimm/blk: add error handling support for add_disk()
        nvdimm/blk: avoid calling del_gendisk() on early failures
        nvdimm/btt: add error handling support for add_disk()
        nvdimm/btt: use goto error labels on btt_blk_init()
        loop: Remove duplicate assignments
        drbd: Fix double free problem in drbd_create_device
        nvdimm/btt: do not call del_gendisk() if not needed
        bcache: fix use-after-free problem in bcache_device_free()
        zram: replace fsync_bdev with sync_blockdev
        ...
      cb690f52
    • Linus Torvalds's avatar
      Merge tag 'for-5.16/block-2021-11-09' of git://git.kernel.dk/linux-block · 3e28850c
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - Set of fixes for the batched tag allocation (Ming, me)
      
       - add_disk() error handling fix (Luis)
      
       - Nested queue quiesce fixes (Ming)
      
       - Shared tags init error handling fix (Ye)
      
       - Misc cleanups (Jean, Ming, me)
      
      * tag 'for-5.16/block-2021-11-09' of git://git.kernel.dk/linux-block:
        nvme: wait until quiesce is done
        scsi: make sure that request queue queiesce and unquiesce balanced
        scsi: avoid to quiesce sdev->request_queue two times
        blk-mq: add one API for waiting until quiesce is done
        blk-mq: don't free tags if the tag_set is used by other device in queue initialztion
        block: fix device_add_disk() kobject_create_and_add() error handling
        block: ensure cached plug request matches the current queue
        block: move queue enter logic into blk_mq_submit_bio()
        block: make bio_queue_enter() fast-path available inline
        block: split request allocation components into helpers
        block: have plug stored requests hold references to the queue
        blk-mq: update hctx->nr_active in blk_mq_end_request_batch()
        blk-mq: add RQF_ELV debug entry
        blk-mq: only try to run plug merge if request has same queue with incoming bio
        block: move RQF_ELV setting into allocators
        dm: don't stop request queue after the dm device is suspended
        block: replace always false argument with 'false'
        block: assign correct tag before doing prefetch of request
        blk-mq: fix redundant check of !e expression
      3e28850c
    • Linus Torvalds's avatar
      Merge tag 'for-5.16/bdev-size-2021-11-09' of git://git.kernel.dk/linux-block · 1dc1f92e
      Linus Torvalds authored
      Pull more bdev size updates from Jens Axboe:
       "Two followup changes for the bdev-size series from this merge window:
      
         - Add loff_t cast to bdev_nr_bytes() (Christoph)
      
         - Use bdev_nr_bytes() consistently for the block parts at least (me)"
      
      * tag 'for-5.16/bdev-size-2021-11-09' of git://git.kernel.dk/linux-block:
        block: use new bdev_nr_bytes() helper for blkdev_{read,write}_iter()
        block: add a loff_t cast to bdev_nr_bytes
      1dc1f92e
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.16-2021-11-09' of git://git.kernel.dk/linux-block · 007301c4
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Minor fixes that should go into the 5.16 release:
      
         - Fix max worker setting not working correctly on NUMA (Beld)
      
         - Correctly return current setting for max workers if zeroes are
           passed in (Pavel)
      
         - io_queue_sqe_arm_apoll() cleanup, as identified during the initial
           merge (Pavel)
      
         - Misc fixes (Nghia, me)"
      
      * tag 'io_uring-5.16-2021-11-09' of git://git.kernel.dk/linux-block:
        io_uring: honour zeroes as io-wq worker limits
        io_uring: remove dead 'sqe' store
        io_uring: remove redundant assignment to ret in io_register_iowq_max_workers()
        io-wq: fix max-workers not correctly set on multi-node system
        io_uring: clean up io_queue_sqe_arm_apoll
      007301c4
    • Linus Torvalds's avatar
      Merge tag 'for-5.16/dm-changes' of... · c183e170
      Linus Torvalds authored
      Merge tag 'for-5.16/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Add DM core support for emitting audit events through the audit
         subsystem. Also enhance both the integrity and crypt targets to emit
         events to via dm-audit.
      
       - Various other simple code improvements and cleanups.
      
      * tag 'for-5.16/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm table: log table creation error code
        dm: make workqueue names device-specific
        dm writecache: Make use of the helper macro kthread_run()
        dm crypt: Make use of the helper macro kthread_run()
        dm verity: use bvec_kmap_local in verity_for_bv_block
        dm log writes: use memcpy_from_bvec in log_writes_map
        dm integrity: use bvec_kmap_local in __journal_read_write
        dm integrity: use bvec_kmap_local in integrity_metadata
        dm: add add_disk() error handling
        dm: Remove redundant flush_workqueue() calls
        dm crypt: log aead integrity violations to audit subsystem
        dm integrity: log audit events for dm-integrity target
        dm: introduce audit event module for device mapper
      c183e170
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.16' of git://git.infradead.org/users/hch/dma-mapping · 37259498
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
       "Just a small set of changes this time. The request dma_direct_alloc
        cleanups are still under review and haven't made the cut.
      
        Summary:
      
         - convert sparc32 to the generic dma-direct code
      
         - use bitmap_zalloc (Christophe JAILLET)"
      
      * tag 'dma-mapping-5.16' of git://git.infradead.org/users/hch/dma-mapping:
        dma-mapping: use 'bitmap_zalloc()' when applicable
        sparc32: use DMA_DIRECT_REMAP
        sparc32: remove dma_make_coherent
        sparc32: remove the call to dma_make_coherent in arch_dma_free
      37259498
    • Linus Torvalds's avatar
      Merge tag 'ovl-update-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · 1bdd629e
      Linus Torvalds authored
      Pull overlayfs updates from Miklos Szeredi:
      
       - Fix a regression introduced in the last cycle
      
       - Fix a use-after-free in the AIO path
      
       - Fix a bogus warning reported by syzbot
      
      * tag 'ovl-update-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: fix filattr copy-up failure
        ovl: fix warning in ovl_create_real()
        ovl: fix use after free in struct ovl_aio_req
      1bdd629e
    • Linus Torvalds's avatar
      Merge tag 'fuse-update-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · cdd39b05
      Linus Torvalds authored
      Pull fuse updates from Miklos Szeredi:
      
       - Fix a possible of deadlock in case inode writeback is in progress
         during dentry reclaim
      
       - Fix a crash in case of page stealing
      
       - Selectively invalidate cached attributes, possibly improving
         performance
      
       - Allow filesystems to disable data flushing from ->flush()
      
       - Misc fixes and cleanups
      
      * tag 'fuse-update-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (23 commits)
        fuse: fix page stealing
        virtiofs: use strscpy for copying the queue name
        fuse: add FOPEN_NOFLUSH
        fuse: only update necessary attributes
        fuse: take cache_mask into account in getattr
        fuse: add cache_mask
        fuse: move reverting attributes to fuse_change_attributes()
        fuse: simplify local variables holding writeback cache state
        fuse: cleanup code conditional on fc->writeback_cache
        fuse: fix attr version comparison in fuse_read_update_size()
        fuse: always invalidate attributes after writes
        fuse: rename fuse_write_update_size()
        fuse: don't bump attr_version in cached write
        fuse: selective attribute invalidation
        fuse: don't increment nlink in link()
        fuse: decrement nlink on overwriting rename
        fuse: simplify __fuse_write_file_get()
        fuse: move fuse_invalidate_attr() into fuse_update_ctime()
        fuse: delete redundant code
        fuse: use kmap_local_page()
        ...
      cdd39b05
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.16-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux · a0c7d4a0
      Linus Torvalds authored
      Pull orangefs fixes from Mike Marshall:
      
       - fix sb refcount leak when allocate sb info failed (Chenyuan Mi)
      
       - fix error return code of orangefs_revalidate_lookup() (Jia-Ju Bai)
      
       - remove redundant initialization of variable ret (Colin Ian King)
      
      * tag 'for-linus-5.16-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
        orangefs: Fix sb refcount leak when allocate sb info failed.
        fs: orangefs: fix error return code of orangefs_revalidate_lookup()
        orangefs: Remove redundant initialization of variable ret
      a0c7d4a0
    • Linus Torvalds's avatar
      Merge tag '9p-for-5.16-rc1' of git://github.com/martinetd/linux · f89ce84b
      Linus Torvalds authored
      Pull 9p updates from Dominique Martinet:
       "Fixes, netfs read support and checkpatch rewrite:
      
         - fix syzcaller uninitialized value usage after missing error check
      
         - add module autoloading based on transport name
      
         - convert cached reads to use netfs helpers
      
         - adjust readahead based on transport msize
      
         - and many, many checkpatch.pl warning fixes..."
      
      * tag '9p-for-5.16-rc1' of git://github.com/martinetd/linux:
        9p: fix a bunch of checkpatch warnings
        9p: set readahead and io size according to maxsize
        9p p9mode2perm: remove useless strlcpy and check sscanf return code
        9p v9fs_parse_options: replace simple_strtoul with kstrtouint
        9p: fix file headers
        fs/9p: fix indentation and Add missing a blank line after declaration
        fs/9p: fix warnings found by checkpatch.pl
        9p: fix minor indentation and codestyle
        fs/9p: cleanup: opening brace at the beginning of the next line
        9p: Convert to using the netfs helper lib to do reads and caching
        fscache_cookie_enabled: check cookie is valid before accessing it
        net/9p: autoload transport modules
        9p/net: fix missing error check in p9_check_errors
      f89ce84b
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 59a2ceee
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
       "87 patches.
      
        Subsystems affected by this patch series: mm (pagecache and hugetlb),
        procfs, misc, MAINTAINERS, lib, checkpatch, binfmt, kallsyms, ramfs,
        init, codafs, nilfs2, hfs, crash_dump, signals, seq_file, fork,
        sysvfs, kcov, gdb, resource, selftests, and ipc"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (87 commits)
        ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTL
        ipc: check checkpoint_restore_ns_capable() to modify C/R proc files
        selftests/kselftest/runner/run_one(): allow running non-executable files
        virtio-mem: disallow mapping virtio-mem memory via /dev/mem
        kernel/resource: disallow access to exclusive system RAM regions
        kernel/resource: clean up and optimize iomem_is_exclusive()
        scripts/gdb: handle split debug for vmlinux
        kcov: replace local_irq_save() with a local_lock_t
        kcov: avoid enable+disable interrupts if !in_task()
        kcov: allocate per-CPU memory on the relevant node
        Documentation/kcov: define `ip' in the example
        Documentation/kcov: include types.h in the example
        sysv: use BUILD_BUG_ON instead of runtime check
        kernel/fork.c: unshare(): use swap() to make code cleaner
        seq_file: fix passing wrong private data
        seq_file: move seq_escape() to a header
        signal: remove duplicate include in signal.h
        crash_dump: remove duplicate include in crash_dump.h
        crash_dump: fix boolreturn.cocci warning
        hfs/hfsplus: use WARN_ON for sanity check
        ...
      59a2ceee
    • Manfred Spraul's avatar
      ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTL · 0e9beb8a
      Manfred Spraul authored
      Compilation of ipc/ipc_sysctl.c is controlled by
      obj-$(CONFIG_SYSVIPC_SYSCTL)
      [see ipc/Makefile]
      
      And CONFIG_SYSVIPC_SYSCTL depends on SYSCTL
      [see init/Kconfig]
      
      An SYSCTL is selected by PROC_SYSCTL.
      [see fs/proc/Kconfig]
      
      Thus: #ifndef CONFIG_PROC_SYSCTL in ipc/ipc_sysctl.c is impossible, the
      fallback can be removed.
      
      Link: https://lkml.kernel.org/r/20210918145337.3369-1-manfred@colorfullife.comSigned-off-by: default avatarManfred Spraul <manfred@colorfullife.com>
      Reviewed-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Acked-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0e9beb8a
    • Michal Clapinski's avatar
      ipc: check checkpoint_restore_ns_capable() to modify C/R proc files · 5563cabd
      Michal Clapinski authored
      This commit removes the requirement to be root to modify sem_next_id,
      msg_next_id and shm_next_id and checks checkpoint_restore_ns_capable
      instead.
      
      Since those files are specific to the IPC namespace, there is no reason
      they should require root privileges.  This is similar to ns_last_pid,
      which also only checks checkpoint_restore_ns_capable.
      
      [akpm@linux-foundation.org: ipc/ipc_sysctl.c needs capability.h for checkpoint_restore_ns_capable()]
      
      Link: https://lkml.kernel.org/r/20210916163717.3179496-1-mclapinski@google.comSigned-off-by: default avatarMichal Clapinski <mclapinski@google.com>
      Reviewed-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Reviewed-by: default avatarManfred Spraul <manfred@colorfullife.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5563cabd
    • SeongJae Park's avatar
      selftests/kselftest/runner/run_one(): allow running non-executable files · 303f8e2d
      SeongJae Park authored
      When running a test program, 'run_one()' checks if the program has the
      execution permission and fails if it doesn't.  However, it's easy to
      mistakenly lose the permissions, as some common tools like 'diff' don't
      support the permission change well[1].  Compared to that, making mistakes
      in the test program's path would only rare, as those are explicitly listed
      in 'TEST_PROGS'.  Therefore, it might make more sense to resolve the
      situation on our own and run the program.
      
      For this reason, this commit makes the test program runner function still
      print the warning message but to try parsing the interpreter of the
      program and to explicitly run it with the interpreter, in this case.
      
      [1] https://lore.kernel.org/mm-commits/YRJisBs9AunccCD4@kroah.com/
      
      Link: https://lkml.kernel.org/r/20210810164534.25902-1-sj38.park@gmail.comSigned-off-by: default avatarSeongJae Park <sjpark@amazon.de>
      Suggested-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Shuah Khan <shuah@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      303f8e2d
    • David Hildenbrand's avatar
      virtio-mem: disallow mapping virtio-mem memory via /dev/mem · 2128f4e2
      David Hildenbrand authored
      We don't want user space to be able to map virtio-mem device memory
      directly (e.g., via /dev/mem) in order to have guarantees that in a sane
      setup we'll never accidentially access unplugged memory within the
      device-managed region of a virtio-mem device, just as required by the
      virtio-spec.
      
      As soon as the virtio-mem driver is loaded, the device region is visible
      in /proc/iomem via the parent device region.  From that point on user
      space is aware of the device region and we want to disallow mapping
      anything inside that region (where we will dynamically (un)plug memory)
      until the driver has been unloaded cleanly and e.g., another driver might
      take over.
      
      By creating our parent IORESOURCE_SYSTEM_RAM resource with
      IORESOURCE_EXCLUSIVE, we will disallow any /dev/mem access to our device
      region until the driver was unloaded cleanly and removed the parent
      region.  This will work even though only some memory blocks are actually
      currently added to Linux and appear as busy in the resource tree.
      
      So access to the region from user space is only possible
      a) if we don't load the virtio-mem driver.
      b) after unloading the virtio-mem driver cleanly.
      
      Don't build virtio-mem if access to /dev/mem cannot be restricticted -- if
      we have CONFIG_DEVMEM=y but CONFIG_STRICT_DEVMEM is not set.
      
      Link: https://lkml.kernel.org/r/20210920142856.17758-4-david@redhat.comSigned-off-by: default avatarDavid Hildenbrand <david@redhat.com>
      Reviewed-by: default avatarDan Williams <dan.j.williams@intel.com>
      Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Hanjun Guo <guohanjun@huawei.com>
      Cc: Jason Wang <jasowang@redhat.com>
      Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2128f4e2
    • David Hildenbrand's avatar
      kernel/resource: disallow access to exclusive system RAM regions · a9e7b8d4
      David Hildenbrand authored
      virtio-mem dynamically exposes memory inside a device memory region as
      system RAM to Linux, coordinating with the hypervisor which parts are
      actually "plugged" and consequently usable/accessible.
      
      On the one hand, the virtio-mem driver adds/removes whole memory blocks,
      creating/removing busy IORESOURCE_SYSTEM_RAM resources, on the other
      hand, it logically (un)plugs memory inside added memory blocks,
      dynamically either exposing them to the buddy or hiding them from the
      buddy and marking them PG_offline.
      
      In contrast to physical devices, like a DIMM, the virtio-mem driver is
      required to actually make use of any of the device-provided memory,
      because it performs the handshake with the hypervisor.  virtio-mem
      memory cannot simply be access via /dev/mem without a driver.
      
      There is no safe way to:
      a) Access plugged memory blocks via /dev/mem, as they might contain
         unplugged holes or might get silently unplugged by the virtio-mem
         driver and consequently turned inaccessible.
      b) Access unplugged memory blocks via /dev/mem because the virtio-mem
         driver is required to make them actually accessible first.
      
      The virtio-spec states that unplugged memory blocks MUST NOT be written,
      and only selected unplugged memory blocks MAY be read.  We want to make
      sure, this is the case in sane environments -- where the virtio-mem driver
      was loaded.
      
      We want to make sure that in a sane environment, nobody "accidentially"
      accesses unplugged memory inside the device managed region.  For example,
      a user might spot a memory region in /proc/iomem and try accessing it via
      /dev/mem via gdb or dumping it via something else.  By the time the mmap()
      happens, the memory might already have been removed by the virtio-mem
      driver silently: the mmap() would succeeed and user space might
      accidentially access unplugged memory.
      
      So once the driver was loaded and detected the device along the
      device-managed region, we just want to disallow any access via /dev/mem to
      it.
      
      In an ideal world, we would mark the whole region as busy ("owned by a
      driver") and exclude it; however, that would be wrong, as we don't really
      have actual system RAM at these ranges added to Linux ("busy system RAM").
      Instead, we want to mark such ranges as "not actual busy system RAM but
      still soft-reserved and prepared by a driver for future use."
      
      Let's teach iomem_is_exclusive() to reject access to any range with
      "IORESOURCE_SYSTEM_RAM | IORESOURCE_EXCLUSIVE", even if not busy and even
      if "iomem=relaxed" is set.  Introduce EXCLUSIVE_SYSTEM_RAM to make it
      easier for applicable drivers to depend on this setting in their Kconfig.
      
      For now, there are no applicable ranges and we'll modify virtio-mem next
      to properly set IORESOURCE_EXCLUSIVE on the parent resource container it
      creates to contain all actual busy system RAM added via
      add_memory_driver_managed().
      
      Link: https://lkml.kernel.org/r/20210920142856.17758-3-david@redhat.comSigned-off-by: default avatarDavid Hildenbrand <david@redhat.com>
      Reviewed-by: default avatarDan Williams <dan.j.williams@intel.com>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Hanjun Guo <guohanjun@huawei.com>
      Cc: Jason Wang <jasowang@redhat.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a9e7b8d4
    • David Hildenbrand's avatar
      kernel/resource: clean up and optimize iomem_is_exclusive() · b78dfa05
      David Hildenbrand authored
      Patch series "virtio-mem: disallow mapping virtio-mem memory via /dev/mem", v5.
      
      Let's add the basic infrastructure to exclude some physical memory regions
      marked as "IORESOURCE_SYSTEM_RAM" completely from /dev/mem access, even
      though they are not marked IORESOURCE_BUSY and even though "iomem=relaxed"
      is set.  Resource IORESOURCE_EXCLUSIVE for that purpose instead of adding
      new flags to express something similar to "soft-busy" or "not busy yet,
      but already prepared by a driver and not to be mapped by user space".
      
      Use it for virtio-mem, to disallow mapping any virtio-mem memory via
      /dev/mem to user space after the virtio-mem driver was loaded.
      
      This patch (of 3):
      
      We end up traversing subtrees of ranges we are not interested in; let's
      optimize this case, skipping such subtrees, cleaning up the function a
      bit.
      
      For example, in the following configuration (/proc/iomem):
      
        00000000-00000fff : Reserved
        00001000-00057fff : System RAM
        00058000-00058fff : Reserved
        00059000-0009cfff : System RAM
        0009d000-000fffff : Reserved
           000a0000-000bffff : PCI Bus 0000:00
           000c0000-000c3fff : PCI Bus 0000:00
           000c4000-000c7fff : PCI Bus 0000:00
           000c8000-000cbfff : PCI Bus 0000:00
           000cc000-000cffff : PCI Bus 0000:00
           000d0000-000d3fff : PCI Bus 0000:00
           000d4000-000d7fff : PCI Bus 0000:00
           000d8000-000dbfff : PCI Bus 0000:00
           000dc000-000dffff : PCI Bus 0000:00
           000e0000-000e3fff : PCI Bus 0000:00
           000e4000-000e7fff : PCI Bus 0000:00
           000e8000-000ebfff : PCI Bus 0000:00
           000ec000-000effff : PCI Bus 0000:00
           000f0000-000fffff : PCI Bus 0000:00
             000f0000-000fffff : System ROM
        00100000-3fffffff : System RAM
        40000000-403fffff : Reserved
           40000000-403fffff : pnp 00:00
        40400000-80a79fff : System RAM
        ...
      
      We don't have to look at any children of "0009d000-000fffff : Reserved"
      if we can just skip these 15 items directly because the parent range is
      not of interest.
      
      Link: https://lkml.kernel.org/r/20210920142856.17758-1-david@redhat.com
      Link: https://lkml.kernel.org/r/20210920142856.17758-2-david@redhat.comSigned-off-by: default avatarDavid Hildenbrand <david@redhat.com>
      Reviewed-by: default avatarDan Williams <dan.j.williams@intel.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Jason Wang <jasowang@redhat.com>
      Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
      Cc: Hanjun Guo <guohanjun@huawei.com>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b78dfa05
    • Douglas Anderson's avatar
      scripts/gdb: handle split debug for vmlinux · 3b294118
      Douglas Anderson authored
      This is related to two previous changes.  Commit dfe4529e
      ("scripts/gdb: find vmlinux where it was before") and commit da036ae1
      ("scripts/gdb: handle split debug").
      
      Although Chrome OS has been using the debug suffix for modules for a
      while, it has just recently started using it for vmlinux as well.  That
      means we've now got to improve the detection of "vmlinux" to also handle
      that it might end with ".debug".
      
      Link: https://lkml.kernel.org/r/20211028151120.v2.1.Ie6bd5a232f770acd8c9ffae487a02170bad3e963@changeidSigned-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
      Cc: Jan Kiszka <jan.kiszka@siemens.com>
      Cc: Kieran Bingham <kbingham@kernel.org>
      Cc: Johannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3b294118