1. 16 May, 2019 17 commits
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f57d7715
      Linus Torvalds authored
      Pull locking fix from Ingo Molnar:
       "A single rwsem fix"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/rwsem: Prevent decrement of reader count before increment
      f57d7715
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b2ca74d3
      Linus Torvalds authored
      Pull core fixes from Ingo Molnar:
       "A handful of objtool updates, plus a documentation addition for
        __ab_c_size()"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Fix whitelist documentation typo
        objtool: Fix function fallthrough detection
        objtool: Don't use ignore flag for fake jumps
        overflow.h: Add comment documenting __ab_c_size()
      b2ca74d3
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 8c05f3b9
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "ARM development updates:
      
         - more unified assembly conversions for clang
      
         - drop obsolete -mauto-it assembler option
      
         - remove arm_memory_present in preference to the generic version
      
         - remove unused asm/limits.h header
      
         - vdso linker update
      
        We tried to make the assembler warn if unified syntax was not used,
        but unfortunately older versions of GCC warn, so the commit had to be
        reverted"
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        Revert "ARM: 8846/1: warn if divided syntax assembler is used"
        ARM: 8858/1: vdso: use $(LD) instead of $(CC) to link VDSO
        ARM: 8855/1: remove unused <asm/limits.h>
        ARM: 8850/1: use memblocks_present
        ARM: 8854/1: drop -mauto-it
        ARM: 8846/1: warn if divided syntax assembler is used
        ARM: 8853/1: drop WASM to work around LLVM issue
        ARM: 8852/1: uaccess: use unified assembler language syntax
        ARM: 8851/1: add TUSERCOND() macro for conditional postfix
      8c05f3b9
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · ab02888e
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Olof Johansson:
       "Mostly the usual churn due to options being reordered or not added in
        the right locations.
      
        Some various enabling of new drivers, etc.
      
        ... i.e. the usual updates, nothing particularly sticks out"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (23 commits)
        arm64: defconfig: Update UFSHCD for Hi3660 soc
        ARM: multi_v7_defconfig: Enable support for STPMIC1
        ARM: multi_v7_defconfig: Enable missing drivers for supported Chromebooks
        arm64: defconfig: enable mv-xor driver
        ARM: Enable Trusted Foundations for multiplatform ARM v7
        ARM: tegra: Enable Trusted Foundations by default
        ARM: tegra: Update default configuration for v5.1-rc1
        ARM: multi_v7_defconfig: Update for moved options
        ARM: multi_v7_defconfig: Update for dropped options
        ARM: shmobile: Enable USB [EO]HCI HCD PLATFORM support in shmobile_defconfig
        ARM: shmobile: Enable PHY_RCAR_GEN3_USB2 in shmobile_defconfig
        ARM: qcom_defconfig: add options for LG Nexus 5 phone
        arm64: defconfig: include the Agilex platform to the arm64 defconfig
        arm64: defconfig: Add PWM Fan support
        arm64: defconfig: Enable Tegra HDA support
        ARM: multi_v7_defconfig: Enable support for CFI NOR FLASH
        ARM: shmobile: defconfig: Enable support for CFI NOR FLASH
        ARM: shmobile: defconfig: Refresh for v5.1-rc1
        ARM: multi_v7_defconfig: enable the Amlogic Meson ADC and eFuse drivers
        arm64: defconfig: enable fpga and service layer
        ...
      ab02888e
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · dc413a90
      Linus Torvalds authored
      Pull ARM SoC-related driver updates from Olof Johansson:
       "Various driver updates for platforms and a couple of the small driver
        subsystems we merge through our tree:
      
        Among the larger pieces:
      
         - Power management improvements for TI am335x and am437x (RTC
           suspend/wake)
      
         - Misc new additions for Amlogic (socinfo updates)
      
         - ZynqMP FPGA manager
      
         - Nvidia improvements for reset/powergate handling
      
         - PMIC wrapper for Mediatek MT8516
      
         - Misc fixes/improvements for ARM SCMI, TEE, NXP i.MX SCU drivers"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (57 commits)
        soc: aspeed: fix Kconfig
        soc: add aspeed folder and misc drivers
        spi: zynqmp: Fix build break
        soc: imx: Add generic i.MX8 SoC driver
        MAINTAINERS: Update email for Qualcomm SoC maintainer
        memory: tegra: Fix a typos for "fdcdwr2" mc client
        Revert "ARM: tegra: Restore memory arbitration on resume from LP1 on Tegra30+"
        memory: tegra: Replace readl-writel with mc_readl-mc_writel
        memory: tegra: Fix integer overflow on tick value calculation
        memory: tegra: Fix missed registers values latching
        ARM: tegra: cpuidle: Handle tick broadcasting within cpuidle core on Tegra20/30
        optee: allow to work without static shared memory
        soc/tegra: pmc: Move powergate initialisation to probe
        soc/tegra: pmc: Remove reset sysfs entries on error
        soc/tegra: pmc: Fix reset sources and levels
        soc: amlogic: meson-gx-pwrc-vpu: Add support for G12A
        soc: amlogic: meson-gx-pwrc-vpu: Fix power on/off register bitmask
        fpga manager: Adding FPGA Manager support for Xilinx zynqmp
        dt-bindings: fpga: Add bindings for ZynqMP fpga driver
        firmware: xilinx: Add fpga API's
        ...
      dc413a90
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · e8a1d701
      Linus Torvalds authored
      Pull ARM Device-tree updates from Olof Johansson:
       "Besides new bindings and additional descriptions of hardware blocks
        for various SoCs and boards, the main new contents here is:
      
        SoCs:
         - Intel Agilex (SoCFPGA)
         - NXP i.MX8MM (Quad Cortex-A53 with media/graphics focus)
      
        New boards:
         - Allwinner:
            + RerVision H3-DVK (H3)
            + Oceanic 5205 5inMFD (H6)
            + Beelink GS2 (H6)
            + Orange Pi 3 (H6)
         - Rockchip:
            + Orange Pi RK3399
            + Nanopi NEO4
            + Veyron-Mighty Chromebook variant
         - Amlogic:
            + SEI Robotics SEI510
         - ST Micro:
            + stm32mp157a discovery1
            + stm32mp157c discovery2
         - NXP:
            + Eckelmann ci4x10 (i.MX6DL)
            + i.MX8MM EVK (i.MX8MM)
            + ZII i.MX7 RPU2 (i.MX7)
            + ZII SPB4 (VF610)
            + Zii Ultra (i.MX8M)
            + TQ TQMa7S (i.MX7Solo)
            + TQ TQMa7D (i.MX7Dual)
            + Kobo Aura (i.MX50)
            + Menlosystems M53 (i.MX53)j
         - Nvidia:
            + Jetson Nano (Tegra T210)"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (593 commits)
        arm64: dts: bitmain: Add UART pinctrl support for Sophon Edge
        arm64: dts: bitmain: Add pinctrl support for BM1880 SoC
        arm64: dts: bitmain: Add GPIO Line names for Sophon Edge board
        arm64: dts: bitmain: Add GPIO support for BM1880 SoC
        ARM: dts: gemini: Indent DIR-685 partition table
        dt-bindings: hwmon (pwm-fan) Remove dead "cooling-*-state" properties
        ARM: dts: qcom-apq8064: Set 'cxo_board' as ref clock of the DSI PHY
        arm64: dts: msm8998: thermal: Restrict thermal zone name length to under 20
        arm64: dts: msm8998: thermal: Fix number of supported sensors
        arm64: dts: msm8998-mtp: thermal: Remove skin and battery thermal zones
        arm64: dts: exynos: Move fixed-clocks out of soc
        arm64: dts: exynos: Move pmu and timer nodes out of soc
        ARM: dts: s5pv210: Fix camera clock provider on Goni board
        ARM: dts: exynos: Properly override node to use MDMA0 on Universal C210
        ARM: dts: exynos: Move fixed-clocks out of soc on Exynos3250
        ARM: dts: exynos: Remove unneeded address/size cells from fixed-clock on Exynos3250
        ARM: dts: exynos: Move pmu and timer nodes out of soc
        arm64: dts: rockchip: fix IO domain voltage setting of APIO5 on rockpro64
        arm64: dts: db820c: Add sound card support
        arm64: dts: apq8096-db820c: Add HDMI display support
        ...
      e8a1d701
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 22c58fd7
      Linus Torvalds authored
      Pull ARM SoC platform updates from Olof Johansson:
       "SoC updates, mostly refactorings and cleanups of old legacy platforms.
      
        Major themes this release:
      
         - Conversion of ixp4xx to a modern platform (drivers, DT, bindings)
      
         - Moving some of the ep93xx headers around to get it closer to
           multiplatform enabled.
      
         - Cleanups of Davinci
      
        This also contains a few patches that were queued up as fixes before
        5.1 but I didn't get sent in before release"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (123 commits)
        ARM: debug-ll: add default address for digicolor
        ARM: u300: regulator: add MODULE_LICENSE()
        ARM: ep93xx: move private headers out of mach/*
        ARM: ep93xx: move pinctrl interfaces into include/linux/soc
        ARM: ep93xx: keypad: stop using mach/platform.h
        ARM: ep93xx: move network platform data to separate header
        ARM: stm32: add AMBA support for stm32 family
        MAINTAINERS: update arch/arm/mach-davinci
        ARM: rockchip: add missing of_node_put in rockchip_smp_prepare_pmu
        ARM: dts: Add queue manager and NPE to the IXP4xx DTSI
        soc: ixp4xx: qmgr: Add DT probe code
        soc: ixp4xx: qmgr: Add DT bindings for IXP4xx qmgr
        soc: ixp4xx: npe: Add DT probe code
        soc: ixp4xx: Add DT bindings for IXP4xx NPE
        soc: ixp4xx: qmgr: Pass resources
        soc: ixp4xx: Remove unused functions
        soc: ixp4xx: Uninline several functions
        soc: ixp4xx: npe: Pass addresses as resources
        ARM: ixp4xx: Turn the QMGR into a platform device
        ARM: ixp4xx: Turn the NPE into a platform device
        ...
      22c58fd7
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal · a455eda3
      Linus Torvalds authored
      Pull thermal soc updates from Eduardo Valentin:
      
       - thermal core has a new devm_* API for registering cooling devices. I
         took the entire series, that is why you see changes on drivers/hwmon
         in this pull (Guenter Roeck)
      
       - rockchip thermal driver gains support to PX30 SoC (Elaine Zhang)
      
       - the generic-adc thermal driver now considers the lookup table DT
         property as optional (Jean-Francois Dagenais)
      
       - Refactoring of tsens thermal driver (Amit Kucheria)
      
       - Cleanups on cpu cooling driver (Daniel Lezcano)
      
       - broadcom thermal driver dropped support to ACPI (Srinath Mannam)
      
       - tegra thermal driver gains support to OC hw throttle and GPU throtle
         (Wei Ni)
      
       - Fixes in several thermal drivers.
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: (59 commits)
        hwmon: (pwm-fan) Use devm_thermal_of_cooling_device_register
        hwmon: (npcm750-pwm-fan) Use devm_thermal_of_cooling_device_register
        hwmon: (mlxreg-fan) Use devm_thermal_of_cooling_device_register
        hwmon: (gpio-fan) Use devm_thermal_of_cooling_device_register
        hwmon: (aspeed-pwm-tacho) Use devm_thermal_of_cooling_device_register
        thermal: rcar_gen3_thermal: Fix to show correct trip points number
        thermal: rcar_thermal: update calculation formula for R-Car Gen3 SoCs
        thermal: cpu_cooling: Actually trace CPU load in thermal_power_cpu_get_power
        thermal: rockchip: Support the PX30 SoC in thermal driver
        dt-bindings: rockchip-thermal: Support the PX30 SoC compatible
        thermal: rockchip: fix up the tsadc pinctrl setting error
        thermal: broadcom: Remove ACPI support
        thermal: Fix build error of missing devm_ioremap_resource on UM
        thermal/drivers/cpu_cooling: Remove pointless field
        thermal/drivers/cpu_cooling: Add Software Package Data Exchange (SPDX)
        thermal/drivers/cpu_cooling: Fixup the header and copyright
        thermal/drivers/cpu_cooling: Remove pointless test in power2state()
        thermal: rcar_gen3_thermal: disable interrupt in .remove
        thermal: rcar_gen3_thermal: fix interrupt type
        thermal: Introduce devm_thermal_of_cooling_device_register
        ...
      a455eda3
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2019-05-16' of git://anongit.freedesktop.org/drm/drm · cc7ce901
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A bunch of fixes for the merge window closure, doesn't seem to be
        anything too major or serious in there.
      
        It does add TU117 turing modesetting to nouveau but it's just an
        enable for preexisting code.
      
        amdgpu:
         - gpu reset at load crash fix
         - ATPX hotplug fix for when dGPU is off
         - SR-IOV fixes
      
        radeon:
         - r5xx pll fixes
      
        i915:
         - GVT (MCHBAR, buffer alignment, misc warnings fixes)
         - Fixes for newly enabled semaphore code
         - Geminilake disable framebuffer compression
         - HSW edp fast modeset fix
         - IRQ vs RCU race fix
      
        nouveau:
         - Turing modesetting fixes
         - TU117 support
      
        msm:
         - SDM845 bringup fixes
      
        panfrost:
         - static checker fixes
      
        pl111:
         - spinlock init fix.
      
        bridge:
         - refresh rate register fix for adv7511"
      
      * tag 'drm-next-2019-05-16' of git://anongit.freedesktop.org/drm/drm: (36 commits)
        drm/msm: Upgrade gxpd checks to IS_ERR_OR_NULL
        drm/msm/dpu: Remove duplicate header
        drm/pl111: Initialize clock spinlock early
        drm/msm: correct attempted NULL pointer dereference in debugfs
        drm/msm: remove resv fields from msm_gem_object struct
        drm/nouveau: fix duplication of nv50_head_atom struct
        drm/nouveau/disp/dp: respect sink limits when selecting failsafe link configuration
        drm/nouveau/core: initial support for boards with TU117 chipset
        drm/nouveau/core: allow detected chipset to be overridden
        drm/nouveau/kms/gf119-gp10x: push HeadSetControlOutputResource() mthd when encoders change
        drm/nouveau/kms/nv50-: fix bug preventing non-vsync'd page flips
        drm/nouveau/kms/gv100-: fix spurious window immediate interlocks
        drm/bridge: adv7511: Fix low refresh rate selection
        drm/panfrost: Add missing _fini() calls in panfrost_device_fini()
        drm/panfrost: Only put sync_out if non-NULL
        drm/i915: Seal races between async GPU cancellation, retirement and signaling
        drm/i915: Fix fastset vs. pfit on/off on HSW EDP transcoder
        drm/i915/fbc: disable framebuffer compression on GeminiLake
        drm/amdgpu/psp: move psp version specific function pointers to early_init
        drm/radeon: prefer lower reference dividers
        ...
      cc7ce901
    • Olof Johansson's avatar
      Merge branch 'fixes' into arm/soc · 7a0c4c17
      Olof Johansson authored
      Merge in a few pending fixes from pre-5.1 that didn't get sent in:
      
      MAINTAINERS: update arch/arm/mach-davinci
      ARM: dts: ls1021: Fix SGMII PCS link remaining down after PHY disconnect
      ARM: dts: imx6q-logicpd: Reduce inrush current on USBH1
      ARM: dts: imx6q-logicpd: Reduce inrush current on start
      ARM: dts: imx: Fix the AR803X phy-mode
      ARM: dts: sun8i: a33: Reintroduce default pinctrl muxing
      arm64: dts: allwinner: a64: Rename hpvcc-supply to cpvdd-supply
      ARM: sunxi: fix a leaked reference by adding missing of_node_put
      ARM: sunxi: fix a leaked reference by adding missing of_node_put
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      7a0c4c17
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-fixes-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 83f3ef3d
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
       "Just a small collection of fixes this time around.
      
        The new virtio-pmem driver is nearly ready, but some last minute
        device-mapper acks and virtio questions made it prudent to await v5.3.
      
        Other major topics that were brewing on the linux-nvdimm mailing list
        like sub-section hotplug, and other devm_memremap_pages() reworks will
        go upstream through Andrew's tree.
      
        Summary:
      
         - Fix a long standing namespace label corruption scenario when
           re-provisioning capacity for a namespace.
      
         - Restore the ability of the dax_pmem module to be built-in.
      
         - Harden the build for the 'nfit_test' unit test modules so that the
           userspace test harness can ensure all required test modules are
           available"
      
      * tag 'libnvdimm-fixes-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        drivers/dax: Allow to include DEV_DAX_PMEM as builtin
        libnvdimm/namespace: Fix label tracking error
        tools/testing/nvdimm: add watermarks for dax_pmem* modules
        dax/pmem: Fix whitespace in dax_pmem
      83f3ef3d
    • Linus Torvalds's avatar
      Merge tag 'for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 8649efb2
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "Core:
         - Add over-current health state
         - Add standard, adaptive and custom charge types
         - Add new properties for start/end charge threshold
      
        New Drivers / Hardware:
         - UCS1002 Programmable USB Port Power Controller
         - Ingenic JZ47xx Battery Fuel Gauge
         - AXP20x USB Power: Add AXP813 support
         - AT91 poweroff: Add SAM9X60 support
         - OLPC battery: Add XO-1.5 and XO-1.75 support
      
        Misc Changes:
         - syscon-reboot: support mask property
         - AXP288 fuel gauge: Blacklist ACEPC T8/T11. Looks like some vendor
           thought it's a good idea to build a desktop system with a fuel
           gauge, that slowly "discharges"...
         - cpcap-battery: Fix calculation errors
         - misc fixes"
      
      * tag 'for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (54 commits)
        power: supply: olpc_battery: force the le/be casts
        power: supply: ucs1002: Fix build error without CONFIG_REGULATOR
        power: supply: ucs1002: Fix wrong return value checking
        power: supply: Add driver for Microchip UCS1002
        dt-bindings: power: supply: Add bindings for Microchip UCS1002
        power: supply: core: Add POWER_SUPPLY_HEALTH_OVERCURRENT constant
        power: supply: core: fix clang -Wunsequenced
        power: supply: core: Add missing documentation for CHARGE_CONTROL_* properties
        power: supply: core: Add CHARGE_CONTROL_{START_THRESHOLD,END_THRESHOLD} properties
        power: supply: core: Add Standard, Adaptive, and Custom charge types
        power: supply: axp288_fuel_gauge: Add ACEPC T8 and T11 mini PCs to the blacklist
        power: supply: bq27xxx_battery: Notify also about status changes
        power: supply: olpc_battery: Have the framework register sysfs files for us
        power: supply: olpc_battery: Add OLPC XO 1.75 support
        power: supply: olpc_battery: Avoid using platform_info
        power: supply: olpc_battery: Use devm_power_supply_register()
        power: supply: olpc_battery: Move priv data to a struct
        power: supply: olpc_battery: Use DT to get battery version
        x86/platform/olpc: Use a correct version when making up a battery node
        x86/platform/olpc: Trivial code move in DT fixup
        ...
      8649efb2
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.2b-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 5fd09ba6
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - some minor cleanups
      
       - two small corrections for Xen on ARM
      
       - two fixes for Xen PVH guest support
      
       - a patch for a new command line option to tune virtual timer handling
      
      * tag 'for-linus-5.2b-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/arm: Use p2m entry with lock protection
        xen/arm: Free p2m entry if fail to add it to RB tree
        xen/pvh: correctly setup the PV EFI interface for dom0
        xen/pvh: set xen_domain_type to HVM in xen_pvh_init
        xenbus: drop useless LIST_HEAD in xenbus_write_watch() and xenbus_file_write()
        xen-netfront: mark expected switch fall-through
        xen: xen-pciback: fix warning Using plain integer as NULL pointer
        x86/xen: Add "xen_timer_slop" command line option
      5fd09ba6
    • Tony Luck's avatar
      ia64: Make sure that we have a mmiowb function real early · 8a635ffb
      Tony Luck authored
      Generic kernels feed many operation through the "machvec" logic to get
      the correct form of the operation for the current system.  "mmiowb()" is
      one of those operations.
      
      Although machvec is initialized very early in boot, it isn't early
      enough for a recent upstream kernel change that added mmiowb to the
      spin_unlock() path.
      
      Statically initialize the mmiowb field of machvec so that we won't die
      with a call through a NULL pointer.  This should be safe because we do
      the real initialization of machvec before bringing up any addtional CPUs
      or doing any I/O.
      
      Fixes: 49ca6462 ("ia64/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()")
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8a635ffb
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.2' of git://linux-nfs.org/~bfields/linux · 700a800a
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "This consists mostly of nfsd container work:
      
        Scott Mayhew revived an old api that communicates with a userspace
        daemon to manage some on-disk state that's used to track clients
        across server reboots. We've been using a usermode_helper upcall for
        that, but it's tough to run those with the right namespaces, so a
        daemon is much friendlier to container use cases.
      
        Trond fixed nfsd's handling of user credentials in user namespaces. He
        also contributed patches that allow containers to support different
        sets of NFS protocol versions.
      
        The only remaining container bug I'm aware of is that the NFS reply
        cache is shared between all containers. If anyone's aware of other
        gaps in our container support, let me know.
      
        The rest of this is miscellaneous bugfixes"
      
      * tag 'nfsd-5.2' of git://linux-nfs.org/~bfields/linux: (23 commits)
        nfsd: update callback done processing
        locks: move checks from locks_free_lock() to locks_release_private()
        nfsd: fh_drop_write in nfsd_unlink
        nfsd: allow fh_want_write to be called twice
        nfsd: knfsd must use the container user namespace
        SUNRPC: rsi_parse() should use the current user namespace
        SUNRPC: Fix the server AUTH_UNIX userspace mappings
        lockd: Pass the user cred from knfsd when starting the lockd server
        SUNRPC: Temporary sockets should inherit the cred from their parent
        SUNRPC: Cache the process user cred in the RPC server listener
        nfsd: Allow containers to set supported nfs versions
        nfsd: Add custom rpcbind callbacks for knfsd
        SUNRPC: Allow further customisation of RPC program registration
        SUNRPC: Clean up generic dispatcher code
        SUNRPC: Add a callback to initialise server requests
        SUNRPC/nfs: Fix return value for nfs4_callback_compound()
        nfsd: handle legacy client tracking records sent by nfsdcld
        nfsd: re-order client tracking method selection
        nfsd: keep a tally of RECLAIM_COMPLETE operations when using nfsdcld
        nfsd: un-deprecate nfsdcld
        ...
      700a800a
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-fixes-2019-05-15' of... · 8da0e152
      Dave Airlie authored
      Merge tag 'drm-misc-next-fixes-2019-05-15' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
      
      - A couple new panfrost fixes
      - Fix the low refresh rate register in adv7511
      - A handful of msm fixes that fell out of 5.1 bringup on SDM845
      - Fix spinlock initialization in pl111
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Sean Paul <sean@poorly.run>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190515201729.GA89093@art_vandelay
      8da0e152
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-fixes-2019-05-15' of... · dc28d574
      Dave Airlie authored
      Merge tag 'drm-intel-next-fixes-2019-05-15' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
      
      - Disable framebuffer compression on Geminilake
      - Fixes for HSW EDP fastset and a IRQ handler vs. RCU race
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190515074817.GA10472@jlahtine-desk.ger.corp.intel.com
      dc28d574
  2. 15 May, 2019 23 commits
    • Linus Torvalds's avatar
      Merge tag 'ktest-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest · b06ed1e7
      Linus Torvalds authored
      Pull more ktest updates from Steven Rostedt:
      
       - Add support for grub2bls boot loader
      
       - Show name and test iteration number in error message sent in mail
      
       - Minor fixes and clean ups
      
      * tag 'ktest-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest: update sample.conf for grub2bls
        ktest: remove get_grub2_index
        ktest: pass KERNEL_VERSION to POST_KTEST
        ktest: introduce grub2bls REBOOT_TYPE option
        ktest: cleanup get_grub_index
        ktest: introduce _get_grub_index
      b06ed1e7
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · d2d8b146
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "The major changes in this tracing update includes:
      
         - Removal of non-DYNAMIC_FTRACE from 32bit x86
      
         - Removal of mcount support from x86
      
         - Emulating a call from int3 on x86_64, fixes live kernel patching
      
         - Consolidated Tracing Error logs file
      
        Minor updates:
      
         - Removal of klp_check_compiler_support()
      
         - kdb ftrace dumping output changes
      
         - Accessing and creating ftrace instances from inside the kernel
      
         - Clean up of #define if macro
      
         - Introduction of TRACE_EVENT_NOP() to disable trace events based on
           config options
      
        And other minor fixes and clean ups"
      
      * tag 'trace-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (44 commits)
        x86: Hide the int3_emulate_call/jmp functions from UML
        livepatch: Remove klp_check_compiler_support()
        ftrace/x86: Remove mcount support
        ftrace/x86_32: Remove support for non DYNAMIC_FTRACE
        tracing: Simplify "if" macro code
        tracing: Fix documentation about disabling options using trace_options
        tracing: Replace kzalloc with kcalloc
        tracing: Fix partial reading of trace event's id file
        tracing: Allow RCU to run between postponed startup tests
        tracing: Fix white space issues in parse_pred() function
        tracing: Eliminate const char[] auto variables
        ring-buffer: Fix mispelling of Calculate
        tracing: probeevent: Fix to make the type of $comm string
        tracing: probeevent: Do not accumulate on ret variable
        tracing: uprobes: Re-enable $comm support for uprobe events
        ftrace/x86_64: Emulate call function while updating in breakpoint handler
        x86_64: Allow breakpoints to emulate call instructions
        x86_64: Add gap to int3 to allow for call emulation
        tracing: kdb: Allow ftdump to skip all but the last few entries
        tracing: Add trace_total_entries() / trace_total_entries_cpu()
        ...
      d2d8b146
    • Russell King's avatar
      Revert "ARM: 8846/1: warn if divided syntax assembler is used" · b752bb40
      Russell King authored
      This reverts commit e8c24bbd.
      
      GCC 4.7, which is still permitted, emits code using the original
      syntax.  This means we end up with lots of assembler warnings when
      building with a currently-supported version of gcc.
      
      Revert the commit (with fixups to keep the follow-on -mauto-it
      change) to avoid these warnings.
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      b752bb40
    • Sean Paul's avatar
      drm/msm: Upgrade gxpd checks to IS_ERR_OR_NULL · 2b117451
      Sean Paul authored
      dev_pm_domain_attach_by_name() can return NULL, so we should check for
      that case when we're about to dereference gxpd.
      
      Fixes: 9325d426 ("drm/msm/gpu: Attach to the GPU GX power domain")
      Cc: Jordan Crouse <jcrouse@codeaurora.org>
      Cc: Rob Clark <robdclark@chromium.org>
      Reviewed-by: default avatarJordan Crouse <jcrouse@codeauorora.org>
      Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190515170104.155525-1-sean@poorly.run
      2b117451
    • Sabyasachi Gupta's avatar
    • Linus Torvalds's avatar
      Merge tag 'kconfig-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 2bbacd1a
      Linus Torvalds authored
      Pull Kconfig updates from Masahiro Yamada:
      
       - error out if a user specifies a directory instead of a file from
         "Save" menu of GUI interfaces
      
       - do not overwrite .config if there is no change in the configuration
      
       - create parent directories as needed when a user specifies a new file
         path from "Save" menu of menuconfig/nconfig
      
       - fix potential buffer overflow
      
       - some trivial cleanups
      
      * tag 'kconfig-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kconfig: make conf_get_autoconfig_name() static
        kconfig: use snprintf for formatting pathnames
        kconfig: remove useless NULL pointer check in conf_write_dep()
        kconfig: make parent directories for the saved .config as needed
        kconfig: do not write .config if the content is the same
        kconfig: do not accept a directory for configuration output
        kconfig: remove trailing whitespaces
        kconfig: Make nconf-cfg.sh executable
      2bbacd1a
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · fcdec143
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "These fix two regressions introduced during the 5.0 cycle, in ACPICA
        and in device PM, cause the values returned by _ADR to be stored in 64
        bits and fix two ACPI documentation issues.
      
        Specifics:
      
         - Update the ACPICA code in the kernel to upstream revision 20190509
           including one regression fix:
             * Prevent excessive ACPI debug messages from being printed by
               moving the ACPI_DEBUG_DEFAULT definition to the right place
               (Erik Schmauss).
      
         - Set the enable_for_wake bits for wakeup GPEs during suspend to idle
           to allow acpi_enable_all_wakeup_gpes() to enable them as
           aproppriate and make wakeup devices sighaling events through ACPI
           GPEs work with suspend-to-idle again (Rajat Jain).
      
         - Use 64 bits to store the return values of _ADR which are assumed to
           be 64-bit by some bus specs and may contain nonzero bits in the
           upper 32 bits part for some devices (Pierre-Louis Bossart).
      
         - Fix two minor issues with the ACPI documentation (Sakari Ailus)"
      
      * tag 'acpi-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: PM: Set enable_for_wake for wakeup GPEs during suspend-to-idle
        Documentation: ACPI: Direct references are allowed to devices only
        Documentation: ACPI: Use tabs for graph ASL indentation
        ACPICA: Update version to 20190509
        ACPICA: Linux: move ACPI_DEBUG_DEFAULT flag out of ifndef
        ACPI: bus: change _ADR representation to 64 bits
      fcdec143
    • Linus Torvalds's avatar
      Merge tag 'pm-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · bfbfbf73
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "These fix a recent regression causing kernels built with CONFIG_PM
        unset to crash on systems that support the Performance and Energy Bias
        Hint (EPB), clean up the cpufreq core and some users of transition
        notifiers and introduce a new power domain flag into the generic power
        domains framework (genpd).
      
        Specifics:
      
         - Fix recent regression causing kernels built with CONFIG_PM unset to
           crash on systems that support the Performance and Energy Bias Hint
           (EPB) by avoiding to compile the EPB-related code depending on
           CONFIG_PM when it is unset (Rafael Wysocki).
      
         - Clean up the transition notifier invocation code in the cpufreq
           core and change some users of cpufreq transition notifiers
           accordingly (Viresh Kumar).
      
         - Change MAINTAINERS to cover the schedutil governor as part of
           cpufreq (Viresh Kumar).
      
         - Simplify cpufreq_init_policy() to avoid redundant computations (Yue
           Hu).
      
         - Add explanatory comment to the cpufreq core (Rafael Wysocki).
      
         - Introduce a new flag, GENPD_FLAG_RPM_ALWAYS_ON, to the generic
           power domains (genpd) framework along with the first user of it
           (Leonard Crestez)"
      
      * tag 'pm-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        soc: imx: gpc: Use GENPD_FLAG_RPM_ALWAYS_ON for ERR009619
        PM / Domains: Add GENPD_FLAG_RPM_ALWAYS_ON flag
        cpufreq: Update MAINTAINERS to include schedutil governor
        cpufreq: Don't find governor for setpolicy drivers in cpufreq_init_policy()
        cpufreq: Explain the kobject_put() in cpufreq_policy_alloc()
        cpufreq: Call transition notifier only once for each policy
        x86: intel_epb: Take CONFIG_PM into account
      bfbfbf73
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 88f76bc3
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes a number of issues in the chelsio and caam drivers"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        Revert "crypto: caam/jr - Remove extra memory barrier during job ring dequeue"
        crypto: caam - fix caam_dump_sg that iterates through scatterlist
        crypto: caam - fix DKP detection logic
        MAINTAINERS: Maintainer for Chelsio crypto driver
        crypto: chelsio - count incomplete block in IV
        crypto: chelsio - Fix softlockup with heavy I/O
        crypto: chelsio - Fix NULL pointer dereference
      88f76bc3
    • Stephen Rothwell's avatar
      kernel/compat.c: mark expected switch fall-throughs · 89963adc
      Stephen Rothwell authored
      In preparation to enabling -Wimplicit-fallthrough, mark switch cases
      where we are expecting to fall through.
      
      This patch aims to suppress 3 missing-break-in-switch false positives
      on some architectures.
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Deepa Dinamani <deepa.kernel@gmail.com>
      Cc: Gustavo A. R. Silva <gustavo@embeddedor.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Jann Horn <jannh@google.com>
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      89963adc
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpufreq' and 'pm-domains' · 2a8d69f6
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq: Update MAINTAINERS to include schedutil governor
        cpufreq: Don't find governor for setpolicy drivers in cpufreq_init_policy()
        cpufreq: Explain the kobject_put() in cpufreq_policy_alloc()
        cpufreq: Call transition notifier only once for each policy
      
      * pm-domains:
        soc: imx: gpc: Use GENPD_FLAG_RPM_ALWAYS_ON for ERR009619
        PM / Domains: Add GENPD_FLAG_RPM_ALWAYS_ON flag
      2a8d69f6
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-bus', 'acpi-doc' and 'acpi-pm' · e3e28670
      Rafael J. Wysocki authored
      * acpi-bus:
        ACPI: bus: change _ADR representation to 64 bits
      
      * acpi-doc:
        Documentation: ACPI: Direct references are allowed to devices only
        Documentation: ACPI: Use tabs for graph ASL indentation
      
      * acpi-pm:
        ACPI: PM: Set enable_for_wake for wakeup GPEs during suspend-to-idle
      e3e28670
    • Raphael Gault's avatar
      objtool: Fix whitelist documentation typo · 2decec48
      Raphael Gault authored
      The directive specified in the documentation to add an exception
      for a single file in a Makefile was inverted.
      Signed-off-by: default avatarRaphael Gault <raphael.gault@arm.com>
      Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/522362a1b934ee39d0af0abb231f68e160ecf1a8.1557874043.git.jpoimboe@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      2decec48
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 5ac94332
      Linus Torvalds authored
      Pull more rdma updates from Jason Gunthorpe:
       "This is being sent to get a fix for the gcc 9.1 build warnings, and
        I've also pulled in some bug fix patches that were posted in the last
        two weeks.
      
         - Avoid the gcc 9.1 warning about overflowing a union member
      
         - Fix the wrong callback type for a single response netlink to doit
      
         - Bug fixes from more usage of the mlx5 devx interface"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        net/mlx5: Set completion EQs as shared resources
        IB/mlx5: Verify DEVX general object type correctly
        RDMA/core: Change system parameters callback from dumpit to doit
        RDMA: Directly cast the sockaddr union to sockaddr
      5ac94332
    • Dave Airlie's avatar
      Merge branch 'linux-5.2' of git://github.com/skeggsb/linux into drm-next · f266fdc7
      Dave Airlie authored
      Mostly fixes for a number of modesetting-related issues that have been
      reported, as well as initial support for TU117 modesetting.  TU116
      also exists these days, but is not officially supported, as I don't
      have HW yet to verify against.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Ben Skeggs <skeggsb@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/CACAvsv77U7_bWYy9CUVGU8zAE0NZcKOLp6kUgppgq9HPd0tBnw@mail.gmail.com
      f266fdc7
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 1064d857
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
      
       - a couple of hotfixes
      
       - almost all of the rest of MM
      
       - lib/ updates
      
       - binfmt_elf updates
      
       - autofs updates
      
       - quite a lot of misc fixes and updates
          - reiserfs, fatfs
          - signals
          - exec
          - cpumask
          - rapidio
          - sysctl
          - pids
          - eventfd
          - gcov
          - panic
          - pps
      
       - gdb script updates
      
       - ipc updates
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (126 commits)
        mm: memcontrol: fix NUMA round-robin reclaim at intermediate level
        mm: memcontrol: fix recursive statistics correctness & scalabilty
        mm: memcontrol: move stat/event counting functions out-of-line
        mm: memcontrol: make cgroup stats and events query API explicitly local
        drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl
        drivers/virt/fsl_hypervisor.c: dereferencing error pointers in ioctl
        mm, memcg: rename ambiguously named memory.stat counters and functions
        arch: remove <asm/sizes.h> and <asm-generic/sizes.h>
        treewide: replace #include <asm/sizes.h> with #include <linux/sizes.h>
        fs/block_dev.c: Remove duplicate header
        fs/cachefiles/namei.c: remove duplicate header
        include/linux/sched/signal.h: replace `tsk' with `task'
        fs/coda/psdev.c: remove duplicate header
        ipc: do cyclic id allocation for the ipc object.
        ipc: conserve sequence numbers in ipcmni_extend mode
        ipc: allow boot time extension of IPCMNI from 32k to 16M
        ipc/mqueue: optimize msg_get()
        ipc/mqueue: remove redundant wq task assignment
        ipc: prevent lockup on alloc_msg and free_msg
        scripts/gdb: print cached rate in lx-clk-summary
        ...
      1064d857
    • Johannes Weiner's avatar
      mm: memcontrol: fix NUMA round-robin reclaim at intermediate level · def0fdae
      Johannes Weiner authored
      When a cgroup is reclaimed on behalf of a configured limit, reclaim
      needs to round-robin through all NUMA nodes that hold pages of the memcg
      in question.  However, when assembling the mask of candidate NUMA nodes,
      the code only consults the *local* cgroup LRU counters, not the
      recursive counters for the entire subtree.  Cgroup limits are frequently
      configured against intermediate cgroups that do not have memory on their
      own LRUs.  In this case, the node mask will always come up empty and
      reclaim falls back to scanning only the current node.
      
      If a cgroup subtree has some memory on one node but the processes are
      bound to another node afterwards, the limit reclaim will never age or
      reclaim that memory anymore.
      
      To fix this, use the recursive LRU counts for a cgroup subtree to
      determine which nodes hold memory of that cgroup.
      
      The code has been broken like this forever, so it doesn't seem to be a
      problem in practice.  I just noticed it while reviewing the way the LRU
      counters are used in general.
      
      Link: http://lkml.kernel.org/r/20190412151507.2769-5-hannes@cmpxchg.orgSigned-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Reviewed-by: default avatarRoman Gushchin <guro@fb.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      def0fdae
    • Johannes Weiner's avatar
      mm: memcontrol: fix recursive statistics correctness & scalabilty · 42a30035
      Johannes Weiner authored
      Right now, when somebody needs to know the recursive memory statistics
      and events of a cgroup subtree, they need to walk the entire subtree and
      sum up the counters manually.
      
      There are two issues with this:
      
      1. When a cgroup gets deleted, its stats are lost. The state counters
         should all be 0 at that point, of course, but the events are not.
         When this happens, the event counters, which are supposed to be
         monotonic, can go backwards in the parent cgroups.
      
      2. During regular operation, we always have a certain number of lazily
         freed cgroups sitting around that have been deleted, have no tasks,
         but have a few cache pages remaining. These groups' statistics do not
         change until we eventually hit memory pressure, but somebody
         watching, say, memory.stat on an ancestor has to iterate those every
         time.
      
      This patch addresses both issues by introducing recursive counters at
      each level that are propagated from the write side when stats change.
      
      Upward propagation happens when the per-cpu caches spill over into the
      local atomic counter.  This is the same thing we do during charge and
      uncharge, except that the latter uses atomic RMWs, which are more
      expensive; stat changes happen at around the same rate.  In a sparse
      file test (page faults and reclaim at maximum CPU speed) with 5 cgroup
      nesting levels, perf shows __mod_memcg_page state at ~1%.
      
      Link: http://lkml.kernel.org/r/20190412151507.2769-4-hannes@cmpxchg.orgSigned-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Reviewed-by: default avatarRoman Gushchin <guro@fb.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      42a30035
    • Johannes Weiner's avatar
      mm: memcontrol: move stat/event counting functions out-of-line · db9adbcb
      Johannes Weiner authored
      These are getting too big to be inlined in every callsite.  They were
      stolen from vmstat.c, which already out-of-lines them, and they have
      only been growing since.  The callsites aren't that hot, either.
      
      Move __mod_memcg_state()
           __mod_lruvec_state() and
           __count_memcg_events() out of line and add kerneldoc comments.
      
      Link: http://lkml.kernel.org/r/20190412151507.2769-3-hannes@cmpxchg.orgSigned-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Reviewed-by: default avatarRoman Gushchin <guro@fb.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      db9adbcb
    • Johannes Weiner's avatar
      mm: memcontrol: make cgroup stats and events query API explicitly local · 205b20cc
      Johannes Weiner authored
      Patch series "mm: memcontrol: memory.stat cost & correctness".
      
      The cgroup memory.stat file holds recursive statistics for the entire
      subtree.  The current implementation does this tree walk on-demand
      whenever the file is read.  This is giving us problems in production.
      
      1. The cost of aggregating the statistics on-demand is high.  A lot of
         system service cgroups are mostly idle and their stats don't change
         between reads, yet we always have to check them.  There are also always
         some lazily-dying cgroups sitting around that are pinned by a handful
         of remaining page cache; the same applies to them.
      
         In an application that periodically monitors memory.stat in our
         fleet, we have seen the aggregation consume up to 5% CPU time.
      
      2. When cgroups die and disappear from the cgroup tree, so do their
         accumulated vm events.  The result is that the event counters at
         higher-level cgroups can go backwards and confuse some of our
         automation, let alone people looking at the graphs over time.
      
      To address both issues, this patch series changes the stat
      implementation to spill counts upwards when the counters change.
      
      The upward spilling is batched using the existing per-cpu cache.  In a
      sparse file stress test with 5 level cgroup nesting, the additional cost
      of the flushing was negligible (a little under 1% of CPU at 100% CPU
      utilization, compared to the 5% of reading memory.stat during regular
      operation).
      
      This patch (of 4):
      
      memcg_page_state(), lruvec_page_state(), memcg_sum_events() are
      currently returning the state of the local memcg or lruvec, not the
      recursive state.
      
      In practice there is a demand for both versions, although the callers
      that want the recursive counts currently sum them up by hand.
      
      Per default, cgroups are considered recursive entities and generally we
      expect more users of the recursive counters, with the local counts being
      special cases.  To reflect that in the name, add a _local suffix to the
      current implementations.
      
      The following patch will re-incarnate these functions with recursive
      semantics, but with an O(1) implementation.
      
      [hannes@cmpxchg.org: fix bisection hole]
        Link: http://lkml.kernel.org/r/20190417160347.GC23013@cmpxchg.org
      Link: http://lkml.kernel.org/r/20190412151507.2769-2-hannes@cmpxchg.orgSigned-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Reviewed-by: default avatarRoman Gushchin <guro@fb.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      205b20cc
    • Dan Carpenter's avatar
      drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl · 6a024330
      Dan Carpenter authored
      The "param.count" value is a u64 thatcomes from the user.  The code
      later in the function assumes that param.count is at least one and if
      it's not then it leads to an Oops when we dereference the ZERO_SIZE_PTR.
      
      Also the addition can have an integer overflow which would lead us to
      allocate a smaller "pages" array than required.  I can't immediately
      tell what the possible run times implications are, but it's safest to
      prevent the overflow.
      
      Link: http://lkml.kernel.org/r/20181218082129.GE32567@kadam
      Fixes: 6db71994 ("drivers/virt: introduce Freescale hypervisor management driver")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Timur Tabi <timur@freescale.com>
      Cc: Mihai Caraman <mihai.caraman@freescale.com>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6a024330
    • Dan Carpenter's avatar
      drivers/virt/fsl_hypervisor.c: dereferencing error pointers in ioctl · c8ea3663
      Dan Carpenter authored
      strndup_user() returns error pointers on error, and then in the error
      handling we pass the error pointers to kfree().  It will cause an Oops.
      
      Link: http://lkml.kernel.org/r/20181218082003.GD32567@kadam
      Fixes: 6db71994 ("drivers/virt: introduce Freescale hypervisor management driver")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Timur Tabi <timur@freescale.com>
      Cc: Mihai Caraman <mihai.caraman@freescale.com>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c8ea3663
    • Chris Down's avatar
      mm, memcg: rename ambiguously named memory.stat counters and functions · 871789d4
      Chris Down authored
      I spent literally an hour trying to work out why an earlier version of
      my memory.events aggregation code doesn't work properly, only to find
      out I was calling memcg->events instead of memcg->memory_events, which
      is fairly confusing.
      
      This naming seems in need of reworking, so make it harder to do the
      wrong thing by using vmevents instead of events, which makes it more
      clear that these are vm counters rather than memcg-specific counters.
      
      There are also a few other inconsistent names in both the percpu and
      aggregated structs, so these are all cleaned up to be more coherent and
      easy to understand.
      
      This commit contains code cleanup only: there are no logic changes.
      
      [akpm@linux-foundation.org: fix it for preceding changes]
      Link: http://lkml.kernel.org/r/20190208224319.GA23801@chrisdown.nameSigned-off-by: default avatarChris Down <chris@chrisdown.name>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Roman Gushchin <guro@fb.com>
      Cc: Dennis Zhou <dennis@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      871789d4