1. 05 Dec, 2019 40 commits
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · 0f137416
      Linus Torvalds authored
      Pull modules updates from Jessica Yu:
       "Summary of modules changes for the 5.5 merge window:
      
         - Refactor include/linux/export.h and remove code duplication between
           EXPORT_SYMBOL and EXPORT_SYMBOL_NS to make it more readable.
      
           The most notable change is that no namespace is represented by an
           empty string "" rather than NULL.
      
         - Fix a module load/unload race where waiter(s) trying to load the
           same module weren't being woken up when a module finally goes away"
      
      * tag 'modules-for-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        kernel/module.c: wakeup processes in module_wq on module unload
        moduleparam: fix parameter description mismatch
        export: avoid code duplication in include/linux/export.h
      0f137416
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 25cfb0c7
      Linus Torvalds authored
      Pull m68knommu update from Greg Ungerer:
       "Only a single change, to enable coldfire preemption entry code for all
        preemption types"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k/coldfire: Use CONFIG_PREEMPTION
      25cfb0c7
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · b08baef0
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Olof Johansson:
       "We keep this in a separate branch to avoid cross-branch conflicts, but
        most of the material here is fairly boring -- some new drivers turned
        on for hardware since they were merged, and some refreshed files due
        to time having moved a lot of entries around"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (36 commits)
        ARM: config: multi_v5: ASPEED SDHCI, SGPIO
        ARM: configs: multi_v7: ASPEED network, gpio, FSI
        ARM: config: aspeed-g4: Add MMC, and cleanup
        ARM: config: aspeed-g5: Add SGPIO and FSI drivers
        ARM: config: aspeed-g5: Enable 8250_DW quirks
        arm64: defconfig: Change CONFIG_AT803X_PHY from m to y
        ARM: shmobile: defconfig: Refresh for v5.4-rc1
        arm64: defconfig: Enable R8A77961 SoC
        ARM: configs: sunxi: Enable MICREL_PHY
        arm64: defconfig: add new Allwinner crypto options
        ARM: configs: sunxi: add new Allwinner crypto options
        ARM: tegra: Enable Tegra VDE driver in tegra_defconfig
        ARM: imx_v6_v7_defconfig: Enable CONFIG_TOUCHSCREEN_DA9052
        arm64: defconfig: Enable configs for S32V234
        arm64: defconfig: Enable CONFIG_KEYBOARD_IMX_SC_KEY as module
        arm64: defconfig: Enable SMMU v3 PMCG
        arm64: defconfig: Enable HiSilicon ZIP controller
        arm64: defconfig: enable Altera GPIO controller
        ARM: multi_v7_defconfig: Enable audio support for stm32mp157
        arm64: defconfig: enable rsu driver
        ...
      b08baef0
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · eb275167
      Linus Torvalds authored
      Pull ARM Device-tree updates from Olof Johansson:
       "As always, the bulk of updates.  Some of the news this cycle:
      
        New SoC descriptions:
         - Broadcom BCM2711
         - Amlogic Meson A1 and G12
         - Freescale S32V234
         - Marvell Armada AP807/AP807-quad and CP115
         - Realtek RTD1293 and RTD1296
         - Rockchip RK3308
      
        New boards and platforms:
         - Allwinner: NanoPi Duo2
         - Amlogic: Ugoos am6
         - Atmel at91: Overkiz Kizbox2/4
         - Broadcom: RPi4, Luxul XWC-2000
         - Marvell: New Espressobin flavor
         - NXP: i.MX8MN LPDDR4 EVK, i.MX8QXP Colibri, S32V234 EVB, Netronix
           E60K02 and Kobo Clara HD, Kontron N6311 and N6411, OPOS6UL and
           OPOS6ULDev
         - Renesas: Salvator-XS
         - Rockchip: Beelink A1 (rk3308), rk3308 eval boards, rk3399-roc-pc"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (653 commits)
        ARM: dts: logicpd-torpedo: Disable USB Host
        arm: dts: mt6323: add keys, power-controller, rtc and codec
        arm64: dts: mt8183: add systimer0 device node
        dt-bindings: mediatek: update bindings for MT8183 systimer
        arm64: dts: rockchip: fix sdmmc detection on boot on rk3328-roc-cc
        arm64: dts: rockchip: Split rk3399-roc-pc for with and without mezzanine board.
        arm64: dts: rockchip: Add Beelink A1
        dt-bindings: ARM: rockchip: Add Beelink A1
        arm64: dts: rockchip: Add RK3328 audio pipelines
        arm64: dts: ti: k3-j721e-common-proc-board: Add USB ports
        arm64: dts: ti: k3-j721e-main: add USB controller nodes
        ARM: dts: aspeed-g6: Add timer description
        ARM: dts: aspeed: ast2600evb: Enable i2c buses
        ARM: dts: at91: add a dts and dtsi file for kizbox2 based boards
        dt-bindings: arm: at91: Document Kizbox2-2 board binding
        arm64: dts: meson-gx: fix i2c compatible
        arm64: dts: meson-gx: cec node should be disabled by default
        arm64: dts: meson-g12b-odroid-n2: add missing amlogic, s922x compatible
        arm64: dts: meson-gxm: fix gpu irq order
        arm64: dts: meson-g12a: fix gpu irq order
        ...
      eb275167
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · ec939e4c
      Linus Torvalds authored
      Pull ARM SoC driver updates from Olof Johansson:
       "Various driver updates for platforms:
      
         - A larger set of work on Tegra 2/3 around memory controller and
           regulator features, some fuse cleanups, etc..
      
         - MMP platform drivers, in particular for USB PHY, and other smaller
           additions.
      
         - Samsung Exynos 5422 driver for DMC (dynamic memory configuration),
           and ASV (adaptive voltage), allowing the platform to run at more
           optimal operating points.
      
         - Misc refactorings and support for RZ/G2N and R8A774B1 from Renesas
      
         - Clock/reset control driver for TI/OMAP
      
         - Meson-A1 reset controller support
      
         - Qualcomm sdm845 and sda845 SoC IDs for socinfo"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (150 commits)
        firmware: arm_scmi: Fix doorbell ring logic for !CONFIG_64BIT
        soc: fsl: add RCPM driver
        dt-bindings: fsl: rcpm: Add 'little-endian' and update Chassis definition
        memory: tegra: Consolidate registers definition into common header
        memory: tegra: Ensure timing control debug features are disabled
        memory: tegra: Introduce Tegra30 EMC driver
        memory: tegra: Do not handle error from wait_for_completion_timeout()
        memory: tegra: Increase handshake timeout on Tegra20
        memory: tegra: Print a brief info message about EMC timings
        memory: tegra: Pre-configure debug register on Tegra20
        memory: tegra: Include io.h instead of iopoll.h
        memory: tegra: Adapt for Tegra20 clock driver changes
        memory: tegra: Don't set EMC rate to maximum on probe for Tegra20
        memory: tegra: Add gr2d and gr3d to DRM IOMMU group
        memory: tegra: Set DMA mask based on supported address bits
        soc: at91: Add Atmel SFR SN (Serial Number) support
        memory: atmel-ebi: switch to SPDX license identifiers
        memory: atmel-ebi: move NUM_CS definition inside EBI driver
        soc: mediatek: Refactor bus protection control
        soc: mediatek: Refactor sram control
        ...
      ec939e4c
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 38206c24
      Linus Torvalds authored
      Pull ARM SoC platform updates from Olof Johansson:
       "Most of these are for MMP (seeing a bunch of cleanups and refactorings
        for the first time in a while), and for OMAP (a bunch of cleanups and
        added support for voltage controller on OMAP4430)"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (51 commits)
        ARM: OMAP2+: Add missing put_device() call in omapdss_init_of()
        OMAP2: fixup doc comments in omap_device
        ARM: OMAP1: drop duplicated dependency on ARCH_OMAP1
        ARM: ASPEED: update default ARCH_NR_GPIO for ARCH_ASPEED
        ARM: imx: use generic function to exit coherency
        ARM: tegra: Use WFE for power-gating on Tegra30
        ARM: tegra: Fix FLOW_CTLR_HALT register clobbering by tegra_resume()
        ARM: exynos: Enable exynos-asv driver for ARCH_EXYNOS
        ARM: s3c: Rename s5p_usb_phy functions
        ARM: s3c: Rename s3c64xx_spi_setname() function
        ARM: imx: Add serial number support for i.MX6/7 SoCs
        ARM: imx: Drop imx_anatop_usb_chrg_detect_disable()
        arm64: Introduce config for S32
        ARM: hisi: drop useless depend on ARCH_MULTI_V7
        arm64: realtek: Select reset controller
        ARM: shmobile: rcar-gen2: Drop legacy DT clock support
        ARM: OMAP2+: Remove duplicated include from pmic-cpcap.c
        ARM: OMAP1: ams-delta FIQ: Fix a typo ("Initiaize")
        MAINTAINERS: Add logicpd-som-lv and logicpd-torpedo to OMAP TREE
        ARM: OMAP2+: pdata-quirks: drop TI_ST/KIM support
        ...
      38206c24
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-5.5-rc1' of... · d9e48dc2
      Linus Torvalds authored
      Merge tag 'pwm/for-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "Various changes and minor fixes across a couple of drivers"
      
      * tag 'pwm/for-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: stm32: Pass breakinput instead of its values
        pwm: stm32: Remove clutter from ternary operator
        pwm: stm32: Validate breakinput data from DT
        pwm: Update comment on struct pwm_ops::apply
        pwm: sun4i: Fix incorrect calculation of duty_cycle/period
        pwm: stm32: Add power management support
        pwm: stm32: Split breakinput apply routine to ease PM support
        dt-bindings: pwm-stm32: Document pinctrl sleep state
        pwm: sun4i: Drop redundant assignment to variable pval
        dt-bindings: pwm: mediatek: Remove gratuitous compatible string for MT7629
      d9e48dc2
    • Linus Torvalds's avatar
      Merge branch 'thermal/next' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux · fb3da48a
      Linus Torvalds authored
      Pull thermal management updates from Zhang Rui:
      
       - Fix a deadlock regression in thermal core framework, which was
         introduced in 5.3 (Wei Wang)
      
       - Initialize thermal control framework earlier to enable thermal
         mitigation during boot (Amit Kucheria)
      
       - Convert the Intelligent Power Allocator (IPA) thermal governor to
         follow the generic PM_EM instead of its own Energy Model (Quentin
         Perret)
      
       - Introduce a new Amlogic soc thermal driver (Guillaume La Roque)
      
       - Add interrupt support for tsens thermal driver (Amit Kucheria)
      
       - Add support for MSM8956/8976 in tsens thermal driver
         (AngeloGioacchino Del Regno)
      
       - Add support for r8a774b1 in rcar thermal driver (Biju Das)
      
       - Add support for Thermal Monitor Unit v2 in qoriq thermal driver
         (Yuantian Tang)
      
       - Some other fixes/cleanups on thermal core framework and soc thermal
         drivers (Colin Ian King, Daniel Lezcano, Hsin-Yi Wang, Tian Tao)
      
      * 'thermal/next' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux: (32 commits)
        thermal: Fix deadlock in thermal thermal_zone_device_check
        thermal: cpu_cooling: Migrate to using the EM framework
        thermal: cpu_cooling: Make the power-related code depend on IPA
        PM / EM: Declare EM data types unconditionally
        arm64: defconfig: Enable CONFIG_ENERGY_MODEL
        drivers: thermal: tsens: fix potential integer overflow on multiply
        thermal: cpu_cooling: Reorder the header file
        thermal: cpu_cooling: Remove pointless dependency on CONFIG_OF
        thermal: no need to set .owner when using module_platform_driver
        thermal: qcom: tsens-v1: Fix kfree of a non-pointer value
        cpufreq: qcom-hw: Move driver initialization earlier
        clk: qcom: Initialize clock drivers earlier
        cpufreq: Initialize cpufreq-dt driver earlier
        cpufreq: Initialize the governors in core_initcall
        thermal: Initialize thermal subsystem earlier
        thermal: Remove netlink support
        dt: thermal: tsens: Document compatible for MSM8976/56
        thermal: qcom: tsens-v1: Add support for MSM8956 and MSM8976
        MAINTAINERS: add entry for Amlogic Thermal driver
        thermal: amlogic: Add thermal driver to support G12 SoCs
        ...
      fb3da48a
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 5ecc9d15
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
       "Most of the rest of MM and various other things. Some Kconfig rework
        still awaits merges of dependent trees from linux-next.
      
        Subsystems affected by this patch series: mm/hotfixes, mm/memcg,
        mm/vmstat, mm/thp, procfs, sysctl, misc, notifiers, core-kernel,
        bitops, lib, checkpatch, epoll, binfmt, init, rapidio, uaccess, kcov,
        ubsan, ipc, bitmap, mm/pagemap"
      
      * akpm: (86 commits)
        mm: remove __ARCH_HAS_4LEVEL_HACK and include/asm-generic/4level-fixup.h
        um: add support for folded p4d page tables
        um: remove unused pxx_offset_proc() and addr_pte() functions
        sparc32: use pgtable-nopud instead of 4level-fixup
        parisc/hugetlb: use pgtable-nopXd instead of 4level-fixup
        parisc: use pgtable-nopXd instead of 4level-fixup
        nds32: use pgtable-nopmd instead of 4level-fixup
        microblaze: use pgtable-nopmd instead of 4level-fixup
        m68k: mm: use pgtable-nopXd instead of 4level-fixup
        m68k: nommu: use pgtable-nopud instead of 4level-fixup
        c6x: use pgtable-nopud instead of 4level-fixup
        arm: nommu: use pgtable-nopud instead of 4level-fixup
        alpha: use pgtable-nopud instead of 4level-fixup
        gpio: pca953x: tighten up indentation
        gpio: pca953x: convert to use bitmap API
        gpio: pca953x: use input from regs structure in pca953x_irq_pending()
        gpio: pca953x: remove redundant variable and check in IRQ handler
        lib/bitmap: introduce bitmap_replace() helper
        lib/test_bitmap: fix comment about this file
        lib/test_bitmap: move exp1 and exp2 upper for others to use
        ...
      5ecc9d15
    • Mike Rapoport's avatar
      mm: remove __ARCH_HAS_4LEVEL_HACK and include/asm-generic/4level-fixup.h · f949286c
      Mike Rapoport authored
      There are no architectures that use include/asm-generic/4level-fixup.h
      therefore it can be removed along with __ARCH_HAS_4LEVEL_HACK define.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-14-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f949286c
    • Mike Rapoport's avatar
      um: add support for folded p4d page tables · e19f97ed
      Mike Rapoport authored
      The UML port uses 4 and 5 level fixups to support higher level page
      table directories in the generic VM code.
      
      Implement primitives necessary for the 4th level folding, add walks of
      p4d level where appropriate and drop usage of __ARCH_USE_5LEVEL_HACK.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-13-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e19f97ed
    • Mike Rapoport's avatar
      um: remove unused pxx_offset_proc() and addr_pte() functions · 4e65e76f
      Mike Rapoport authored
      The pxx_offset_proc() and addr_pte() functions are never used.  Remove
      them.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-12-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Acked-by: default avatarRichard Weinberger <richard@nod.at>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4e65e76f
    • Mike Rapoport's avatar
      sparc32: use pgtable-nopud instead of 4level-fixup · 7235db26
      Mike Rapoport authored
      32-bit version of sparc has three-level page tables and can use
      pgtable-nopud and folding of the upper layers.
      
      Replace usage of include/asm-generic/4level-fixup.h with
      include/asm-generic/pgtable-nopud.h and adjust page table manipulation
      macros and functions accordingly.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-11-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Tested-by: default avatarAnatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7235db26
    • Helge Deller's avatar
      parisc/hugetlb: use pgtable-nopXd instead of 4level-fixup · 2fa245c1
      Helge Deller authored
      Link: http://lkml.kernel.org/r/1572938135-31886-10-git-send-email-rppt@kernel.orgSigned-off-by: default avatarHelge Deller <deller@gmx.de>
      Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2fa245c1
    • Mike Rapoport's avatar
      parisc: use pgtable-nopXd instead of 4level-fixup · d96885e2
      Mike Rapoport authored
      parisc has two or three levels of page tables and can use appropriate
      pgtable-nopXd and folding of the upper layers.
      
      Replace usage of include/asm-generic/4level-fixup.h and explicit
      definitions of __PAGETABLE_PxD_FOLDED in parisc with
      include/asm-generic/pgtable-nopmd.h for two-level configurations and
      with include/asm-generic/pgtable-nopud.h for three-lelve configurations
      and adjust page table manipulation macros and functions accordingly.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-9-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Acked-by: default avatarHelge Deller <deller@gmx.de>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d96885e2
    • Mike Rapoport's avatar
      nds32: use pgtable-nopmd instead of 4level-fixup · 7c2763c4
      Mike Rapoport authored
      nds32 has only two-level page tables and can use pgtable-nopmd and
      folding of the upper layers.
      
      Replace usage of include/asm-generic/4level-fixup.h and explicit
      definition of __PAGETABLE_PMD_FOLDED in nds32 with
      include/asm-generic/pgtable-nopmd.h and adjust page table manipulation
      macros and functions accordingly.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-8-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7c2763c4
    • Mike Rapoport's avatar
      microblaze: use pgtable-nopmd instead of 4level-fixup · ed48e1f8
      Mike Rapoport authored
      microblaze has only two-level page tables and can use pgtable-nopmd and
      folding of the upper layers.
      
      Replace usage of include/asm-generic/4level-fixup.h and explicit
      definition of __PAGETABLE_PMD_FOLDED in microblaze with
      include/asm-generic/pgtable-nopmd.h and adjust page table manipulation
      macros and functions accordingly.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-7-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ed48e1f8
    • Mike Rapoport's avatar
      m68k: mm: use pgtable-nopXd instead of 4level-fixup · 60e50f34
      Mike Rapoport authored
      m68k has two or three levels of page tables and can use appropriate
      pgtable-nopXd and folding of the upper layers.
      
      Replace usage of include/asm-generic/4level-fixup.h and explicit
      definitions of __PAGETABLE_PxD_FOLDED in m68k with
      include/asm-generic/pgtable-nopmd.h for two-level configurations and
      with include/asm-generic/pgtable-nopud.h for three-lelve configurations
      and adjust page table manipulation macros and functions accordingly.
      
      [akpm@linux-foundation.org: fix merge glitch]
      [geert@linux-m68k.org: more merge glitch fixes]
      [akpm@linux-foundation.org: s/bad_pgd/bad_pud/, per Mike]
      Link: http://lkml.kernel.org/r/1572938135-31886-6-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Acked-by: default avatarGreg Ungerer <gerg@linux-m68k.org>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      60e50f34
    • Mike Rapoport's avatar
      m68k: nommu: use pgtable-nopud instead of 4level-fixup · f6f7caeb
      Mike Rapoport authored
      The generic nommu implementation of page table manipulation takes care
      of folding of the upper levels and does not require fixups.
      
      Simply replace of include/asm-generic/4level-fixup.h with
      include/asm-generic/pgtable-nopud.h.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-5-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Acked-by: default avatarGreg Ungerer <gerg@linux-m68k.org>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f6f7caeb
    • Mike Rapoport's avatar
      c6x: use pgtable-nopud instead of 4level-fixup · d13252ea
      Mike Rapoport authored
      c6x is a nommu architecture and does not require fixup for upper layers
      of the page tables because it is already handled by the generic nommu
      implementation.
      
      Replace usage of include/asm-generic/4level-fixup.h with
      include/asm-generic/pgtable-nopud.h
      
      Link: http://lkml.kernel.org/r/1572938135-31886-4-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d13252ea
    • Mike Rapoport's avatar
      arm: nommu: use pgtable-nopud instead of 4level-fixup · aa662823
      Mike Rapoport authored
      The generic nommu implementation of page table manipulation takes care
      of folding of the upper levels and does not require fixups.
      
      Simply replace of include/asm-generic/4level-fixup.h with
      include/asm-generic/pgtable-nopud.h.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-3-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Acked-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aa662823
    • Mike Rapoport's avatar
      alpha: use pgtable-nopud instead of 4level-fixup · a73c9489
      Mike Rapoport authored
      Patch series "mm: remove __ARCH_HAS_4LEVEL_HACK", v13.
      
      These patches convert several architectures to use page table folding
      and remove __ARCH_HAS_4LEVEL_HACK along with
      include/asm-generic/4level-fixup.h.
      
      For the nommu configurations the folding is already implemented by the
      generic code so the only change was to use the appropriate header file.
      
      As for the rest, the changes are mostly about mechanical replacement of
      pgd accessors with pud/pmd ones and the addition of higher levels to
      page table traversals.
      
      With Vineet's patches from "elide extraneous generated code for folded
      p4d/pud/pmd" series [1] there is a small shrink of the kernel size of
      about -0.01% for the defconfig builds.
      
      This patch (of 13):
      
      It is not likely alpha will have 5-level page tables.
      
      Replace usage of include/asm-generic/4level-fixup.h and implied
      __ARCH_HAS_4LEVEL_HACK with include/asm-generic/pgtable-nopud.h and
      adjust page table manipulation macros and functions accordingly.
      
      Link: http://lkml.kernel.org/r/1572938135-31886-2-git-send-email-rppt@kernel.orgSigned-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Greg Ungerer <gerg@linux-m68k.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Sam Creasey <sammy@sammy.net>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
      Cc: Anatoly Pugachev <matorola@gmail.com>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a73c9489
    • Andy Shevchenko's avatar
      gpio: pca953x: tighten up indentation · b27d8517
      Andy Shevchenko authored
      There is no need to split some of the lines.  However, improve the style
      of multi-line comment.  On top of this there is no need to have double
      space.
      
      Correct above indentation issues without altering the functionality.
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-12-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b27d8517
    • Andy Shevchenko's avatar
      gpio: pca953x: convert to use bitmap API · 35d13d94
      Andy Shevchenko authored
      Instead of customized approach convert the driver to use bitmap API.
      
      [andriy.shevchenko@linux.intel.com: reduce stack usage in couple of functions]
        Link: http://lkml.kernel.org/r/20191023153056.64262-1-andriy.shevchenko@linux.intel.com
      Link: http://lkml.kernel.org/r/20191022172922.61232-11-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      35d13d94
    • Andy Shevchenko's avatar
      gpio: pca953x: use input from regs structure in pca953x_irq_pending() · 0a0a0219
      Andy Shevchenko authored
      While PCA_PCAL is defined for PCA953X type only, we still may use an
      offset of the input from regs structure for sake of consistency.
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-10-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0a0a0219
    • Andy Shevchenko's avatar
      gpio: pca953x: remove redundant variable and check in IRQ handler · a97832f2
      Andy Shevchenko authored
      We always will have at least one iteration of the loop due to pending
      being guaranteed to be non-zero.  That is, we may remove extra variable
      and check in the IRQ handler.
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-9-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a97832f2
    • Andy Shevchenko's avatar
      lib/bitmap: introduce bitmap_replace() helper · 30544ed5
      Andy Shevchenko authored
      In some drivers we want to have a single operation over bitmap which is
      an equivalent to:
      
      	*dst = (*old & ~(*mask)) | (*new & *mask)
      
      Introduce bitmap_replace() helper for this.
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-8-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      30544ed5
    • Andy Shevchenko's avatar
      lib/test_bitmap: fix comment about this file · 780ff33b
      Andy Shevchenko authored
      This test case file is about bitmap API, and not printf() facility.
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-7-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      780ff33b
    • Andy Shevchenko's avatar
      lib/test_bitmap: move exp1 and exp2 upper for others to use · c21dd8a7
      Andy Shevchenko authored
      Some test cases may re-use predefined exp1 and exp2 bitmaps.  Move them
      upper in the file.
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-6-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c21dd8a7
    • Andy Shevchenko's avatar
      lib/test_bitmap: rename exp to exp1 to avoid ambiguous name · 0ee312e3
      Andy Shevchenko authored
      One function is using exp as local variable.  Avoid ambiguous naming by
      rename global one to exp1.
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-5-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0ee312e3
    • Andy Shevchenko's avatar
      lib/test_bitmap: name EXP_BYTES properly · a4881d1c
      Andy Shevchenko authored
      EXP_BYTES has been wrongly named.  It's a size of the exp array in bits.
      
      While here, go ahead and rename to EXP1_IN_BITS to avoid double renaming
      when exp will be renamed to exp1 in the next patch
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-4-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a4881d1c
    • Andy Shevchenko's avatar
      lib/test_bitmap: undefine macros after use · 54224044
      Andy Shevchenko authored
      There is no need to keep step and ptest macros defined in entire file.
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-3-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      54224044
    • Andy Shevchenko's avatar
      lib/test_bitmap: force argument of bitmap_parselist_user() to proper address space · 17b6753f
      Andy Shevchenko authored
      Patch series "gpio: pca953x: Convert to bitmap (extended) API", v2.
      
      While converting gpio-pca953x driver to bitmap API, I noticed that we
      have no function to replace bits.
      
      So, that's how patch 7 appears.
      
      First 6 patches are preparatory of the test suite (including some
      warning fixes, etc).
      
      Patches 8-9 are preparatory for the GPIO driver to be easier converted
      to bitmap API, conversion to which happens in patch 10.
      
      Patch 11 contains simple indentation fixes.
      
      This patch (of 11):
      
      Sparse complains:
      
        lib/test_bitmap.c:345:58: warning: incorrect type in argument 1 (different address spaces)
        lib/test_bitmap.c:345:58:    expected char const [noderef] <asn:1> *ubuf
        lib/test_bitmap.c:345:58:    got char const *const in
      
      Force argument of bitmap_parselist_user() to proper address space.
      
      Link: http://lkml.kernel.org/r/20191022172922.61232-2-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Yury Norov <yury.norov@gmail.com>
      Cc: William Breathitt Gray <vilhelm.gray@gmail.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
      Cc: Marek Vasut <marek.vasut+renesas@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      17b6753f
    • Masahiro Yamada's avatar
      arch: sembuf.h: make uapi asm/sembuf.h self-contained · 0fb9dc28
      Masahiro Yamada authored
      Userspace cannot compile <asm/sembuf.h> due to some missing type
      definitions.  For example, building it for x86 fails as follows:
      
          CC      usr/include/asm/sembuf.h.s
        In file included from <command-line>:32:0:
        usr/include/asm/sembuf.h:17:20: error: field `sem_perm' has incomplete type
          struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
                            ^~~~~~~~
        usr/include/asm/sembuf.h:24:2: error: unknown type name `__kernel_time_t'
          __kernel_time_t sem_otime; /* last semop time */
          ^~~~~~~~~~~~~~~
        usr/include/asm/sembuf.h:25:2: error: unknown type name `__kernel_ulong_t'
          __kernel_ulong_t __unused1;
          ^~~~~~~~~~~~~~~~
        usr/include/asm/sembuf.h:26:2: error: unknown type name `__kernel_time_t'
          __kernel_time_t sem_ctime; /* last change time */
          ^~~~~~~~~~~~~~~
        usr/include/asm/sembuf.h:27:2: error: unknown type name `__kernel_ulong_t'
          __kernel_ulong_t __unused2;
          ^~~~~~~~~~~~~~~~
        usr/include/asm/sembuf.h:29:2: error: unknown type name `__kernel_ulong_t'
          __kernel_ulong_t sem_nsems; /* no. of semaphores in array */
          ^~~~~~~~~~~~~~~~
        usr/include/asm/sembuf.h:30:2: error: unknown type name `__kernel_ulong_t'
          __kernel_ulong_t __unused3;
          ^~~~~~~~~~~~~~~~
        usr/include/asm/sembuf.h:31:2: error: unknown type name `__kernel_ulong_t'
          __kernel_ulong_t __unused4;
          ^~~~~~~~~~~~~~~~
      
      It is just a matter of missing include directive.
      
      Include <asm/ipcbuf.h> to make it self-contained, and add it to
      the compile-test coverage.
      
      Link: http://lkml.kernel.org/r/20191030063855.9989-3-yamada.masahiro@socionext.comSigned-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0fb9dc28
    • Masahiro Yamada's avatar
      arch: msgbuf.h: make uapi asm/msgbuf.h self-contained · 9ef0e004
      Masahiro Yamada authored
      Userspace cannot compile <asm/msgbuf.h> due to some missing type
      definitions.  For example, building it for x86 fails as follows:
      
          CC      usr/include/asm/msgbuf.h.s
        In file included from usr/include/asm/msgbuf.h:6:0,
                         from <command-line>:32:
        usr/include/asm-generic/msgbuf.h:25:20: error: field `msg_perm' has incomplete type
          struct ipc64_perm msg_perm;
                            ^~~~~~~~
        usr/include/asm-generic/msgbuf.h:27:2: error: unknown type name `__kernel_time_t'
          __kernel_time_t msg_stime; /* last msgsnd time */
          ^~~~~~~~~~~~~~~
        usr/include/asm-generic/msgbuf.h:28:2: error: unknown type name `__kernel_time_t'
          __kernel_time_t msg_rtime; /* last msgrcv time */
          ^~~~~~~~~~~~~~~
        usr/include/asm-generic/msgbuf.h:29:2: error: unknown type name `__kernel_time_t'
          __kernel_time_t msg_ctime; /* last change time */
          ^~~~~~~~~~~~~~~
        usr/include/asm-generic/msgbuf.h:41:2: error: unknown type name `__kernel_pid_t'
          __kernel_pid_t msg_lspid; /* pid of last msgsnd */
          ^~~~~~~~~~~~~~
        usr/include/asm-generic/msgbuf.h:42:2: error: unknown type name `__kernel_pid_t'
          __kernel_pid_t msg_lrpid; /* last receive pid */
          ^~~~~~~~~~~~~~
      
      It is just a matter of missing include directive.
      
      Include <asm/ipcbuf.h> to make it self-contained, and add it to
      the compile-test coverage.
      
      Link: http://lkml.kernel.org/r/20191030063855.9989-2-yamada.masahiro@socionext.comSigned-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9ef0e004
    • Masahiro Yamada's avatar
      arch: ipcbuf.h: make uapi asm/ipcbuf.h self-contained · 5b009673
      Masahiro Yamada authored
      Userspace cannot compile <asm/ipcbuf.h> due to some missing type
      definitions.  For example, building it for x86 fails as follows:
      
          CC      usr/include/asm/ipcbuf.h.s
        In file included from usr/include/asm/ipcbuf.h:1:0,
                         from <command-line>:32:
        usr/include/asm-generic/ipcbuf.h:21:2: error: unknown type name `__kernel_key_t'
          __kernel_key_t  key;
          ^~~~~~~~~~~~~~
        usr/include/asm-generic/ipcbuf.h:22:2: error: unknown type name `__kernel_uid32_t'
          __kernel_uid32_t uid;
          ^~~~~~~~~~~~~~~~
        usr/include/asm-generic/ipcbuf.h:23:2: error: unknown type name `__kernel_gid32_t'
          __kernel_gid32_t gid;
          ^~~~~~~~~~~~~~~~
        usr/include/asm-generic/ipcbuf.h:24:2: error: unknown type name `__kernel_uid32_t'
          __kernel_uid32_t cuid;
          ^~~~~~~~~~~~~~~~
        usr/include/asm-generic/ipcbuf.h:25:2: error: unknown type name `__kernel_gid32_t'
          __kernel_gid32_t cgid;
          ^~~~~~~~~~~~~~~~
        usr/include/asm-generic/ipcbuf.h:26:2: error: unknown type name `__kernel_mode_t'
          __kernel_mode_t  mode;
          ^~~~~~~~~~~~~~~
        usr/include/asm-generic/ipcbuf.h:28:35: error: `__kernel_mode_t' undeclared here (not in a function)
          unsigned char  __pad1[4 - sizeof(__kernel_mode_t)];
                                           ^~~~~~~~~~~~~~~
        usr/include/asm-generic/ipcbuf.h:31:2: error: unknown type name `__kernel_ulong_t'
          __kernel_ulong_t __unused1;
          ^~~~~~~~~~~~~~~~
        usr/include/asm-generic/ipcbuf.h:32:2: error: unknown type name `__kernel_ulong_t'
          __kernel_ulong_t __unused2;
          ^~~~~~~~~~~~~~~~
      
      It is just a matter of missing include directive.
      
      Include <linux/posix_types.h> to make it self-contained, and add it to
      the compile-test coverage.
      
      Link: http://lkml.kernel.org/r/20191030063855.9989-1-yamada.masahiro@socionext.comSigned-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5b009673
    • Julien Grall's avatar
      lib/ubsan: don't serialize UBSAN report · ce5c31db
      Julien Grall authored
      At the moment, UBSAN report will be serialized using a spin_lock().  On
      RT-systems, spinlocks are turned to rt_spin_lock and may sleep.  This
      will result to the following splat if the undefined behavior is in a
      context that can sleep:
      
        BUG: sleeping function called from invalid context at /src/linux/kernel/locking/rtmutex.c:968
        in_atomic(): 1, irqs_disabled(): 128, pid: 3447, name: make
        1 lock held by make/3447:
         #0: 000000009a966332 (&mm->mmap_sem){++++}, at: do_page_fault+0x140/0x4f8
        irq event stamp: 6284
        hardirqs last  enabled at (6283): [<ffff000011326520>] _raw_spin_unlock_irqrestore+0x90/0xa0
        hardirqs last disabled at (6284): [<ffff0000113262b0>] _raw_spin_lock_irqsave+0x30/0x78
        softirqs last  enabled at (2430): [<ffff000010088ef8>] fpsimd_restore_current_state+0x60/0xe8
        softirqs last disabled at (2427): [<ffff000010088ec0>] fpsimd_restore_current_state+0x28/0xe8
        Preemption disabled at:
        [<ffff000011324a4c>] rt_mutex_futex_unlock+0x4c/0xb0
        CPU: 3 PID: 3447 Comm: make Tainted: G        W         5.2.14-rt7-01890-ge6e057589653 #911
        Call trace:
          dump_backtrace+0x0/0x148
          show_stack+0x14/0x20
          dump_stack+0xbc/0x104
          ___might_sleep+0x154/0x210
          rt_spin_lock+0x68/0xa0
          ubsan_prologue+0x30/0x68
          handle_overflow+0x64/0xe0
          __ubsan_handle_add_overflow+0x10/0x18
          __lock_acquire+0x1c28/0x2a28
          lock_acquire+0xf0/0x370
          _raw_spin_lock_irqsave+0x58/0x78
          rt_mutex_futex_unlock+0x4c/0xb0
          rt_spin_unlock+0x28/0x70
          get_page_from_freelist+0x428/0x2b60
          __alloc_pages_nodemask+0x174/0x1708
          alloc_pages_vma+0x1ac/0x238
          __handle_mm_fault+0x4ac/0x10b0
          handle_mm_fault+0x1d8/0x3b0
          do_page_fault+0x1c8/0x4f8
          do_translation_fault+0xb8/0xe0
          do_mem_abort+0x3c/0x98
          el0_da+0x20/0x24
      
      The spin_lock() will protect against multiple CPUs to output a report
      together, I guess to prevent them from being interleaved.  However, they
      can still interleave with other messages (and even splat from
      __might_sleep).
      
      So the lock usefulness seems pretty limited.  Rather than trying to
      accomodate RT-system by switching to a raw_spin_lock(), the lock is now
      completely dropped.
      
      Link: http://lkml.kernel.org/r/20190920100835.14999-1-julien.grall@arm.comSigned-off-by: default avatarJulien Grall <julien.grall@arm.com>
      Reported-by: default avatarAndre Przywara <andre.przywara@arm.com>
      Acked-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ce5c31db
    • Andrey Konovalov's avatar
      vhost, kcov: collect coverage from vhost_worker · 8f6a7f96
      Andrey Konovalov authored
      Add kcov_remote_start()/kcov_remote_stop() annotations to the
      vhost_worker() function, which is responsible for processing vhost
      works.
      
      Since vhost_worker() threads are spawned per vhost device instance the
      common kcov handle is used for kcov_remote_start()/stop() annotations
      (see Documentation/dev-tools/kcov.rst for details).  As the result kcov
      can now be used to collect coverage from vhost worker threads.
      
      Link: http://lkml.kernel.org/r/e49d5d154e5da6c9ada521d2b7ce10a49ce9f98b.1572366574.git.andreyknvl@google.comSigned-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Anders Roxell <anders.roxell@linaro.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: David Windsor <dwindsor@gmail.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Elena Reshetova <elena.reshetova@intel.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Jason Wang <jasowang@redhat.com>
      Cc: Marco Elver <elver@google.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8f6a7f96
    • Andrey Konovalov's avatar
      usb, kcov: collect coverage from hub_event · 95d23dc2
      Andrey Konovalov authored
      Add kcov_remote_start()/kcov_remote_stop() annotations to the
      hub_event() function, which is responsible for processing events on USB
      buses, in particular events that happen during USB device enumeration.
      
      Since hub_event() is run in a global background kernel thread (see
      Documentation/dev-tools/kcov.rst for details), each USB bus gets a
      unique global handle from the USB subsystem kcov handle range.  As the
      result kcov can now be used to collect coverage from events that happen
      on a particular USB bus.
      
      [akpm@linux-foundation.org: avoid patch conflicts to make life easier for Andrew]
      Link: http://lkml.kernel.org/r/de4fe1c219db2d002d905dc1736e2a3bfa1db997.1572366574.git.andreyknvl@google.comSigned-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Anders Roxell <anders.roxell@linaro.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: David Windsor <dwindsor@gmail.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Elena Reshetova <elena.reshetova@intel.com>
      Cc: Jason Wang <jasowang@redhat.com>
      Cc: Marco Elver <elver@google.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      95d23dc2
    • Andrey Konovalov's avatar
      kcov: remote coverage support · eec028c9
      Andrey Konovalov authored
      Patch series " kcov: collect coverage from usb and vhost", v3.
      
      This patchset extends kcov to allow collecting coverage from backgound
      kernel threads.  This extension requires custom annotations for each of
      the places where coverage collection is desired.  This patchset
      implements this for hub events in the USB subsystem and for vhost
      workers.  See the first patch description for details about the kcov
      extension.  The other two patches apply this kcov extension to USB and
      vhost.
      
      Examples of other subsystems that might potentially benefit from this
      when custom annotations are added (the list is based on
      process_one_work() callers for bugs recently reported by syzbot):
      
      1. fs: writeback wb_workfn() worker,
      2. net: addrconf_dad_work()/addrconf_verify_work() workers,
      3. net: neigh_periodic_work() worker,
      4. net/p9: p9_write_work()/p9_read_work() workers,
      5. block: blk_mq_run_work_fn() worker.
      
      These patches have been used to enable coverage-guided USB fuzzing with
      syzkaller for the last few years, see the details here:
      
        https://github.com/google/syzkaller/blob/master/docs/linux/external_fuzzing_usb.md
      
      This patchset has been pushed to the public Linux kernel Gerrit
      instance:
      
        https://linux-review.googlesource.com/c/linux/kernel/git/torvalds/linux/+/1524
      
      This patch (of 3):
      
      Add background thread coverage collection ability to kcov.
      
      With KCOV_ENABLE coverage is collected only for syscalls that are issued
      from the current process.  With KCOV_REMOTE_ENABLE it's possible to
      collect coverage for arbitrary parts of the kernel code, provided that
      those parts are annotated with kcov_remote_start()/kcov_remote_stop().
      
      This allows to collect coverage from two types of kernel background
      threads: the global ones, that are spawned during kernel boot in a
      limited number of instances (e.g.  one USB hub_event() worker thread is
      spawned per USB HCD); and the local ones, that are spawned when a user
      interacts with some kernel interface (e.g.  vhost workers).
      
      To enable collecting coverage from a global background thread, a unique
      global handle must be assigned and passed to the corresponding
      kcov_remote_start() call.  Then a userspace process can pass a list of
      such handles to the KCOV_REMOTE_ENABLE ioctl in the handles array field
      of the kcov_remote_arg struct.  This will attach the used kcov device to
      the code sections, that are referenced by those handles.
      
      Since there might be many local background threads spawned from
      different userspace processes, we can't use a single global handle per
      annotation.  Instead, the userspace process passes a non-zero handle
      through the common_handle field of the kcov_remote_arg struct.  This
      common handle gets saved to the kcov_handle field in the current
      task_struct and needs to be passed to the newly spawned threads via
      custom annotations.  Those threads should in turn be annotated with
      kcov_remote_start()/kcov_remote_stop().
      
      Internally kcov stores handles as u64 integers.  The top byte of a
      handle is used to denote the id of a subsystem that this handle belongs
      to, and the lower 4 bytes are used to denote the id of a thread instance
      within that subsystem.  A reserved value 0 is used as a subsystem id for
      common handles as they don't belong to a particular subsystem.  The
      bytes 4-7 are currently reserved and must be zero.  In the future the
      number of bytes used for the subsystem or handle ids might be increased.
      
      When a particular userspace process collects coverage by via a common
      handle, kcov will collect coverage for each code section that is
      annotated to use the common handle obtained as kcov_handle from the
      current task_struct.  However non common handles allow to collect
      coverage selectively from different subsystems.
      
      Link: http://lkml.kernel.org/r/e90e315426a384207edbec1d6aa89e43008e4caf.1572366574.git.andreyknvl@google.comSigned-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Jason Wang <jasowang@redhat.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: David Windsor <dwindsor@gmail.com>
      Cc: Elena Reshetova <elena.reshetova@intel.com>
      Cc: Anders Roxell <anders.roxell@linaro.org>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Marco Elver <elver@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      eec028c9