1. 01 Jan, 2019 11 commits
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-4.21-rc1' of git://git.infradead.org/users/vkoul/slave-dma · 78e8696c
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
       "This includes a new driver, removes R-Mobile APE6 as it is no longer
        used, sprd cyclic dma support, last batch of dma_slave_config
        direction removal and random updates to bunch of drivers.
      
        Summary:
         - New driver for UniPhier MIO DMA controller
         - Remove R-Mobile APE6 support
         - Sprd driver updates and support for cyclic link-list
         - Remove dma_slave_config direction usage from rest of drivers
         - Minor updates to dmatest, dw-dmac, zynqmp and bcm dma drivers"
      
      * tag 'dmaengine-4.21-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (48 commits)
        dmaengine: qcom_hidma: convert to DEFINE_SHOW_ATTRIBUTE
        dmaengine: pxa: remove DBGFS_FUNC_DECL()
        dmaengine: mic_x100_dma: convert to DEFINE_SHOW_ATTRIBUTE
        dmaengine: amba-pl08x: convert to DEFINE_SHOW_ATTRIBUTE
        dmaengine: Documentation: Add documentation for multi chan testing
        dmaengine: dmatest: Add transfer_size parameter
        dmaengine: dmatest: Add alignment parameter
        dmaengine: dmatest: Use fixed point div to calculate iops
        dmaengine: dmatest: Add support for multi channel testing
        dmaengine: rcar-dmac: Document R8A774C0 bindings
        dt-bindings: dmaengine: usb-dmac: Add binding for r8a774c0
        dmaengine: zynqmp_dma: replace spin_lock_bh with spin_lock_irqsave
        dmaengine: sprd: Add me as one of the module authors
        dmaengine: sprd: Support DMA 2-stage transfer mode
        dmaengine: sprd: Support DMA link-list cyclic callback
        dmaengine: sprd: Set cur_desc as NULL when free or terminate one dma channel
        dmaengine: sprd: Fix the last link-list configuration
        dmaengine: sprd: Get transfer residue depending on the transfer direction
        dmaengine: sprd: Remove direction usage from struct dma_slave_config
        dmaengine: dmatest: fix a small memory leak in dmatest_func()
        ...
      78e8696c
    • Linus Torvalds's avatar
      Merge tag 'kgdb-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux · fcf01044
      Linus Torvalds authored
      Pull kgdb updates from Daniel Thompson:
       "Mostly clean ups although while Doug's was chasing down a odd lockdep
        warning he also did some work to improved debugger resilience when
        some CPUs fail to respond to the round up request.
      
        The main changes are:
      
         - Fixing a lockdep warning on architectures that cannot use an NMI
           for the round up plus related changes to make CPU round up and all
           CPU backtrace more resilient.
      
         - Constify the arch ops tables
      
         - A couple of other small clean ups
      
        Two of the three patchsets here include changes that spill over into
        arch/. Changes in the arch space are relatively narrow in scope (and
        directly related to kgdb). Didn't get comprehensive acks but all
        impacted maintainers were Cc:ed in good time"
      
      * tag 'kgdb-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux:
        kgdb/treewide: constify struct kgdb_arch arch_kgdb_ops
        mips/kgdb: prepare arch_kgdb_ops for constness
        kdb: use bool for binary state indicators
        kdb: Don't back trace on a cpu that didn't round up
        kgdb: Don't round up a CPU that failed rounding up before
        kgdb: Fix kgdb_roundup_cpus() for arches who used smp_call_function()
        kgdb: Remove irq flags from roundup
      fcf01044
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/openrisc/linux · fbea8c7c
      Linus Torvalds authored
      Pull OpenRISC update from Stafford Horne:
       "Just one change for 4.21: Update comments for name change or32 -> or1k
        from Geert Uytterhoeven"
      
      * tag 'for-linus' of git://github.com/openrisc/linux:
        openrisc: Fix broken paths to arch/or32
      fbea8c7c
    • Linus Torvalds's avatar
      Merge tag 'rtc-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 28e8c4bc
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "Subsystem:
         - new %ptR printk format
         - rename core files
         - allow registration of multiple nvmem devices
      
        New driver:
         - i.MX system controller RTC
      
        Driver updates:
         - abx80x: handle voltage ioctls, correct binding doc
         - m41t80: correct month in alarm reads
         - pcf85363: add pcf85263 support
         - pcf8523: properly handle battery low flag
         - s3c: limit alarm to one year in the future as ALMYEAR is broken
         - sun6i: rework clock output binding"
      
      * tag 'rtc-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (54 commits)
        rtc: rename core files
        rtc: nvmem: fix possible use after free
        rtc: add i.MX system controller RTC support
        dt-bindings: fsl: scu: add rtc binding
        rtc: pcf2123: Add Microcrystal rv2123
        rtc: class: reimplement devm_rtc_device_register
        rtc: enforce rtc_timer_init private_data type
        rtc: abx80x: Implement RTC_VL_READ,CLR ioctls
        rtc: pcf85363: Add support for NXP pcf85263 rtc
        dt-bindings: rtc: pcf85363: Document pcf85263 real-time clock
        rtc: pcf8523: don't return invalid date when battery is low
        dt-bindings: rtc: use a generic node name for ds1307
        PM: Switch to use %ptR
        m68k/mac: Switch to use %ptR
        Input: hp_sdc_rtc - Switch to use %ptR
        rtc: tegra: Switch to use %ptR
        rtc: s5m: Switch to use %ptR
        rtc: s3c: Switch to use %ptR
        rtc: rx8025: Switch to use %ptR
        rtc: rx6110: Switch to use %ptR
        ...
      28e8c4bc
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · c9bef4a6
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "We have no core changes but lots of incremental development in drivers
        all over the place: Renesas, NXP, Mediatek and Actions Semiconductor
        keep churning out new SoCs.
      
        I have some subtree maintainers for Renesas and Intel helping out to
        keep down the load, it's been working smoothly (Samsung also have a
        subtree but it was not used this cycle.)
      
        New drivers:
      
         - NXP (ex Freescale) i.MX 8 QXP SoC driver.
      
         - Mediatek MT6797 SoC driver.
      
         - Mediatek MT7629 SoC driver.
      
         - Actions Semiconductor S700 SoC driver.
      
         - Renesas RZ/A2 SoC driver.
      
         - Allwinner sunxi suniv F1C100 SoC driver.
      
         - Qualcomm PMS405 PMIC driver.
      
         - Microsemi Ocelot Jaguar2 SoC driver.
      
        Improvements:
      
         - Some RT improvements (using raw spinlocks where appropriate).
      
         - A lot of new pin sets on the Renesas PFC pin controllers.
      
         - GPIO hogs now work on the Qualcomm SPMI/SSBI pin controller GPIO
           chips, and Xway.
      
         - Major modernization of the Intel pin control drivers.
      
         - STM32 pin control driver will now synchronize usage of pins with
           another CPU using a hardware spinlock"
      
      * tag 'pinctrl-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (145 commits)
        dt-bindings: arm: fsl-scu: add imx8qm pinctrl support
        pinctrl: freescale: Break dependency on SOC_IMX8MQ for i.MX8MQ
        pinctrl: imx-scu: Depend on IMX_SCU
        pinctrl: ocelot: Add dependency on HAS_IOMEM
        pinctrl: ocelot: add MSCC Jaguar2 support
        pinctrl: bcm: ns: support updated DT binding as syscon subnode
        dt-bindings: pinctrl: bcm4708-pinmux: rework binding to use syscon
        MAINTAINERS: merge at91 pinctrl entries
        pinctrl: imx8qxp: break the dependency on SOC_IMX8QXP
        pinctrl: uniphier: constify uniphier_pinctrl_socdata
        pinctrl: mediatek: improve Kconfig dependencies
        pinctrl: msm: mark PM functions as __maybe_unused
        dt-bindings: pinctrl: sunxi: Add supply properties
        pinctrl: meson: meson8b: add the missing GPIO_GROUPs for BOOT and CARD
        pinctrl: meson: meson8: add the missing GPIO_GROUPs for BOOT and CARD
        pinctrl: meson: meson8: rename the "gpio" function to "gpio_periphs"
        pinctrl: meson: meson8: rename the "gpio" function to "gpio_periphs"
        pinctrl: meson: meson8b: fix the GPIO function for the GPIOAO pins
        pinctrl: meson: meson8: fix the GPIO function for the GPIOAO pins
        pinctrl: sh-pfc: Make pinmux_cfg_reg.var_field_width[] variable-length
        ...
      c9bef4a6
    • Linus Torvalds's avatar
      Merge tag 'linux-watchdog-4.21-rc1' of git://www.linux-watchdog.org/linux-watchdog · 115502a6
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
       - add TQ-Systems TQMX86 watchdog driver
       - add Qualcomm PM8916 watchdog driver
       - w83627hf_wdt: add quirk for Inves system
       - renesas_wdt: several improvements and document r8a774c0 support
       - mena21_wdt, mtx-1: Convert to use GPIO descriptor
       - bcm281xx, ie6xx_wdt: convert to DEFINE_SHOW_ATTRIBUTE
       - documentation: add PM usage and kernel-api: don't reference removed functions
       - update bindings for MT7629 SoC
       - several small fixes
      
      * tag 'linux-watchdog-4.21-rc1' of git://www.linux-watchdog.org/linux-watchdog: (22 commits)
        watchdog: tqmx86: Add watchdog driver for the IO controller
        dt-bindings: watchdog: renesas-wdt: Document r8a774c0 support
        watchdog: docs: kernel-api: don't reference removed functions
        watchdog: add documentation for PM usage
        watchdog: mtx-1: Convert to use GPIO descriptor
        watchdog: mena21_wdt: Convert to GPIO descriptors
        dt-bindings: watchdog: Add Qualcomm PM8916 watchdog
        watchdog: Add pm8916 watchdog driver
        dt-bindings: watchdog: update bindings for MT7629 SoC
        watchdog: renesas_wdt: don't keep timer value during suspend/resume
        watchdog: ie6xx_wdt: convert to DEFINE_SHOW_ATTRIBUTE
        watchdog: bcm281xx: convert to DEFINE_SHOW_ATTRIBUTE
        watchdog: asm9260_wdt: make array mode_name static, shrinks object size
        watchdog/hpwdt: Update driver version.
        watchdog/hpwdt: Do not claim unsupported hardware
        watchdog/hpwdt: Exclude via blacklist
        Watchdog: remove outdated comment
        watchdog: w83627hf_wdt: Add quirk for Inves system
        watchdog: cpwd: add of_node_put()
        watchdog: renesas_wdt: don't set divider while watchdog is running
        ...
      115502a6
    • Eric Biggers's avatar
      KEYS: fix parsing invalid pkey info string · 57b0e314
      Eric Biggers authored
      We need to check the return value of match_token() for Opt_err before
      doing anything with it.
      
      [ Not only did the old "-1" value for Opt_err cause problems for the
        __test_and_set_bit(), as fixed in commit 94c13f66 ("security:
        don't use a negative Opt_err token index"), but accessing
        "args[0].from" is invalid for the Opt_err case, as pointed out by Eric
        later.  - Linus ]
      
      Reported-by: syzbot+a22e0dc07567662c50bc@syzkaller.appspotmail.com
      Fixes: 00d60fd3 ("KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2]")
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Cc: stable@kernel.org # 4.20
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      57b0e314
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e1ef035d
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Olof Johansson:
       "Most changes here are to enable new drivers and platforms in the
        various configs that affect them. Most of these have been covered and
        described in the other branches, we mostly keep defconfig separate to
        avoid conflicts between SoC/dt/driver updates that they otherwise
        would be grouped with.
      
        One thing worth mentioning here is that OMAP changes from using their
        own UART driver, to 8250, for the multi_v7_defconfig shared config on
        32-bit. This means that the console is now named ttyS* instead of
        ttyO*. This change was already done for omap2_defconfig a while back,
        so most users of these configs have either already updated, or can
        easily follow the same patterns as they did at that time. This makes
        platform support slightly easier for distros, since they no longer
        need to keep track of a separate console prefix for these platforms"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits)
        Revert "arm64: defconfig: Enable FSL_MC_BUS and FSL_MC_DPIO"
        arm64: defconfig: Enable FSL_MC_BUS and FSL_MC_DPIO
        arm64: defconfig: Replace PINCTRL_MT7622 with PINCTRL_MTK_MOORE
        arm64: defconfig: Regenerate for v4.20
        ARM: multi_v7_defconfig: Add TOSHIBA TC358764 bridge driver
        ARM: multi_v7_defconfig: Add MAX8952 regulator driver
        ARM: exynos_defconfig: Add TOSHIBA TC358764 bridge driver
        ARM: exynos_defconfig: Add MAX8952 regulator driver
        ARM: exynos_defconfig: Add MAX8998 RTC and charger drivers
        ARM: imx_v6_v7_defconfig: add imx7ulp support
        ARM: imx_v6_v7_defconfig: Select TOUCHSCREEN_GOODIX
        ARM: multi_v7_defconfig: enable STM32 analog & timer drivers
        arm64: defconfig: Enable GCC and PINCTRL for MSM8998
        arm64: defconfig: Enable core Qualcomm SDM845 options
        ARM: defconfig: Enable the PL111 DRM driver on vexpress
        ARM: defconfig: Update the vexpress defconfig
        arm64: defconfig: Enable some qcom remoteproc configs
        arm64: defconfig: Enable QCS404 configs
        ARM: imx_v6_v7_defconfig: Enable USB_ANNOUNCE_NEW_DEVICES
        ARM: imx_v6_v7_defconfig: Enable BT_BNEP
        ...
      e1ef035d
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b7badd1d
      Linus Torvalds authored
      Pull ARM Device-tree updates from Olof Johansson:
       "As usual, this is where the bulk of our changes end up landing each
        merge window.
      
        The individual updates are too many to enumerate, many many platforms
        have seen additions of device descriptions such that they are
        functionally more complete (in fact, this is often the bulk of updates
        we see).
      
        Instead I've mostly focused on highlighting the new platforms below as
        they are introduced. Sometimes the introduction is of mostly a
        fragment, that later gets filled in on later releases, and in some
        cases it's near-complete platform support. The latter is more common
        for derivative platforms that already has similar support in-tree.
      
        Two SoCs are slight outliers from the usual range of additions.
        Allwinner support for F1C100s, a quite old SoC (ARMv5-based) shipping
        in the Lychee Pi Nano platform. At the other end is NXP Layerscape
        LX2160A, a 16-core 2.2GHz Cortex-A72 SoC with a large amount of I/O
        aimed at infrastructure/networking.
      
        TI updates stick out in the diff stats too, in particular because they
        have moved the description of their L4 on-chip interconnect to
        devicetree, which opens up for removal of even more of their
        platform-specific 'hwmod' description tables over the next few
        releases.
      
        SoCs:
         - Qualcomm QCS404 (4x Cortex-A53)
         - Allwinner T3 (rebranded R40) and f1c100s (armv5)
         - NXP i.MX7ULP (1x Cortex-A7 + 1x Cortex-M4)
         - NXP LS1028A (2x Cortex-A72), LX2160A (16x Cortex-A72)
      
        New platforms:
         - Rockchip: Gru Scarlet (RK3188 Tablet)
         - Amlogic: Phicomm N1 (S905D), Libretech S805-AC
         - Broadcom: Linksys EA6500 v2 Wi-Fi router (BCM4708)
         - Qualcomm: QCS404 base platform and EVB
         - Qualcomm: Remove of Arrow SD600
         - PXA: First PXA3xx DT board: Raumfeld
         - Aspeed: Facebook Backpack-CMM BMC
         - Renesas iWave G20D-Q7 (RZ/G1N)
         - Allwinner t3-cqa3t-bv3 (T3/R40) and Lichee Pi Nano (F1C100s)
         - Allwinner Emlid Neutis N5, Mapleboard MP130
         - Marvell Macchiatobin Single Shot (Armada 8040, no 10GbE)
         - i.MX: mtrion emCON-MX6, imx6ul-pico-pi, imx7d-sdb-reva
         - VF610: Liebherr's BK4 device, ZII SCU4 AIB board
         - i.MX7D PICO Hobbit baseboard
         - i.MX7ULP EVK board
         - NXP LX2160AQDS and LX2160ARDB boards
      
        Other:
         - Coresight binding updates across the board
         - CPU cooling maps updates across the board"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (648 commits)
        ARM: dts: suniv: Fix improper bindings include patch
        ARM: dts: sunxi: Enable Broadcom-based Bluetooth for multiple boards
        arm64: dts: allwinner: a64: bananapi-m64: Add Bluetooth device node
        ARM: dts: suniv: Fix improper bindings include patch
        arm64: dts: Add spi-[tx/rx]-bus-width for the FSL QSPI controller
        arm64: dts: Remove unused properties from FSL QSPI driver nodes
        ARM: dts: Add spi-[tx/rx]-bus-width for the FSL QSPI controller
        ARM: dts: imx6sx-sdb: Fix the reg properties for the FSL QSPI nodes
        ARM: dts: Remove unused properties from FSL QSPI driver nodes
        arm64: dts: ti: k3-am654: Enable main domain McSPI0
        arm64: dts: ti: k3-am654: Add McSPI DT nodes
        arm64: dts: ti: k3-am654: Populate power-domain property for UART nodes
        arm64: dts: ti: k3-am654-base-board: Enable ECAP PWM
        arm64: dts: ti: k3-am65-main: Add ECAP PWM node
        arm64: dts: ti: k3-am654-base-board: Add I2C nodes
        arm64: dts: ti: am654-base-board: Add pinmux for main uart0
        arm64: dts: ti: k3-am65: Add pinctrl regions
        dt-bindings: pinctrl: k3: Introduce pinmux definitions
        ARM: dts: exynos: Specify I2S assigned clocks in proper node
        ARM: dts: exynos: Add missing CPUs in cooling maps for Odroid X2
        ...
      b7badd1d
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d36377c6
      Linus Torvalds authored
      Pull ARM SoC driver updates from Olof Johansson:
       "Misc driver updates for platforms, many of them power related.
      
         - Rockchip adds power domain support for rk3066 and rk3188
      
         - Amlogic adds a power measurement driver
      
         - Allwinner adds SRAM support for three platforms (F1C100, H5, A64
           C1)
      
         - Wakeup and ti-sysc (platform bus) fixes for OMAP/DRA7
      
         - Broadcom fixes suspend/resume with Thumb2 kernels, and improves
           stability of a handful of firmware/platform interfaces
      
         - PXA completes their conversion to dmaengine framework
      
         - Renesas does a bunch of PM cleanups across many platforms
      
         - Tegra adds support for suspend/resume on T186/T194, which includes
           some driver cleanups and addition of wake events
      
         - Tegra also adds a driver for memory controller (EMC) on Tegra2
      
         - i.MX tweaks power domain bindings, and adds support for i.MX8MQ in
           GPC
      
         - Atmel adds identifiers and LPDDR2 support for a new SoC, SAM9X60
      
        and misc cleanups across several platforms"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (73 commits)
        ARM: at91: add support in soc driver for new SAM9X60
        ARM: at91: add support in soc driver for LPDDR2 SiP
        memory: omap-gpmc: Use of_node_name_eq for node name comparisons
        bus: ti-sysc: Check for no-reset and no-idle flags at the child level
        ARM: OMAP2+: Check also the first dts child for hwmod flags
        soc: amlogic: meson-clk-measure: Add missing REGMAP_MMIO dependency
        soc: imx: gpc: Increase GPC_CLK_MAX to 7
        soc: renesas: rcar-sysc: Fix power domain control after system resume
        soc: renesas: rcar-sysc: Merge PM Domain registration and linking
        soc: renesas: rcar-sysc: Remove rcar_sysc_power_{down,up}() helpers
        soc: renesas: r8a77990-sysc: Fix initialization order of 3DG-{A,B}
        dt-bindings: sram: sunxi: Add compatible for the A64 SRAM C1
        dt-bindings: sram: sunxi: Add bindings for the H5 with SRAM C1
        dt-bindings: sram: Add Allwinner suniv F1C100s
        soc: sunxi: sram: Add support for the H5 SoC system control
        soc: sunxi: sram: Enable EMAC clock access for H3 variant
        soc: imx: gpcv2: add support for i.MX8MQ SoC
        soc: imx: gpcv2: move register access table to domain data
        soc: imx: gpcv2: prefix i.MX7 specific defines
        dmaengine: pxa: make the filter function internal
        ...
      d36377c6
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 0922275e
      Linus Torvalds authored
      Pull arm SoC platform updates from Olof Johansson:
       "SoC updates, mostly refactorings and cleanups of old legacy platforms,
        but also a few more things:
      
        New SoC support this release:
         - NXP/Freescale i.MX7ULP (1x Cortex-A7, Cortex-M4, graphics, etc)
         - Allwinner F1C100, older platform with an ARM926-EJS (ARMv5) core
      
        Cleanups of various platforms:
         - OMAP1 ams-delta does some GPIO cleanups
         - Davinci removes of at24 platform data
         - Samsung cleans up old wakeup, PM debug and secondary core boot code
         - Renesas moves around config options and PM code to drivers/soc for
           sharing with 64-bit and more consistency
         - i.MX, Broadcom and SoCFPGA all have tweaks to lowlevel debug
           console setups
         - SoCFPGA adds explicit selection of ARM errata and removes some
           unused code
      
        This also contains a few patches that I had queued up as fixes for
        4.20 but didn't send in before the release"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (68 commits)
        arm64: dts: renesas: draak: Fix CVBS input
        ARM: omap2: avoid section mismatch warning
        ARM: tegra: avoid section mismatch warning
        ARM: ks8695: fix section mismatch warning
        ARM: pxa: avoid section mismatch warning
        ARM: mmp: fix pxa168_device_usb_phy use on aspenite
        ARM: mmp: fix timer_init calls
        ARM: OMAP1: fix USB configuration for device-only setups
        ARM: OMAP1: add MMC configuration for Palm Tungsten E
        ARM: imx: fix dependencies on imx7ulp
        ARM: meson: select HAVE_ARM_TWD and ARM_GLOBAL_TIMER
        MAINTAINERS: add drivers/soc/amlogic/ to amlogic list
        ARM: imx: add initial support for imx7ulp
        ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed
        ARM: dts: Fix OMAP4430 SDP Ethernet startup
        ARM: dts: am335x-pdu001: Fix polarity of card detection input
        ARM: OMAP1: ams-delta: Fix audio permanently muted
        ARM: dts: omap5: Fix dual-role mode on Super-Speed port
        arm64: dts: rockchip: fix rk3399-rockpro64 regulator gpios
        ARM: davinci: da850-evm: remove unnecessary include
        ...
      0922275e
  2. 31 Dec, 2018 20 commits
    • Olof Johansson's avatar
      Merge branch 'fixes' into next/soc · cac1fc8f
      Olof Johansson authored
      Merge in fixes here, since the last batch didn't make it in before the
      release of 4.20, and we might as well group them with this set of
      patches.
      
      * fixes: (822 commits)
        arm64: dts: renesas: draak: Fix CVBS input
        ARM: dts: Fix OMAP4430 SDP Ethernet startup
        ARM: dts: am335x-pdu001: Fix polarity of card detection input
        ARM: OMAP1: ams-delta: Fix audio permanently muted
        ARM: dts: omap5: Fix dual-role mode on Super-Speed port
        arm64: dts: rockchip: fix rk3399-rockpro64 regulator gpios
        ARM: dts: imx7d-nitrogen7: Fix the description of the Wifi clock
        ARM: imx: update the cpu power up timing setting on i.mx6sx
        Revert "arm64: dts: marvell: add CPU Idle power state support on Armada 7K/8K"
        ARM: dts: imx7d-pico: Describe the Wifi clock
        ARM: dts: realview: Fix some more duplicate regulator nodes
        MAINTAINERS: update entry for MMP platform
        ARM: mmp/mmp2: fix cpu_is_mmp2() on mmp2-dt
        MAINTAINERS: mediatek: Update SoC entry
        ARM: dts: bcm2837: Fix polarity of wifi reset GPIOs
        + Linux 4.20-rc5
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      cac1fc8f
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 495d714a
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
      
       - Rework of the kprobe/uprobe and synthetic events to consolidate all
         the dynamic event code. This will make changes in the future easier.
      
       - Partial rewrite of the function graph tracing infrastructure. This
         will allow for multiple users of hooking onto functions to get the
         callback (return) of the function. This is the ground work for having
         kprobes and function graph tracer using one code base.
      
       - Clean up of the histogram code that will facilitate adding more
         features to the histograms in the future.
      
       - Addition of str_has_prefix() and a few use cases. There currently is
         a similar function strstart() that is used in a few places, but only
         returns a bool and not a length. These instances will be removed in
         the future to use str_has_prefix() instead.
      
       - A few other various clean ups as well.
      
      * tag 'trace-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (57 commits)
        tracing: Use the return of str_has_prefix() to remove open coded numbers
        tracing: Have the historgram use the result of str_has_prefix() for len of prefix
        tracing: Use str_has_prefix() instead of using fixed sizes
        tracing: Use str_has_prefix() helper for histogram code
        string.h: Add str_has_prefix() helper function
        tracing: Make function ‘ftrace_exports’ static
        tracing: Simplify printf'ing in seq_print_sym
        tracing: Avoid -Wformat-nonliteral warning
        tracing: Merge seq_print_sym_short() and seq_print_sym_offset()
        tracing: Add hist trigger comments for variable-related fields
        tracing: Remove hist trigger synth_var_refs
        tracing: Use hist trigger's var_ref array to destroy var_refs
        tracing: Remove open-coding of hist trigger var_ref management
        tracing: Use var_refs[] for hist trigger reference checking
        tracing: Change strlen to sizeof for hist trigger static strings
        tracing: Remove unnecessary hist trigger struct field
        tracing: Fix ftrace_graph_get_ret_stack() to use task and not current
        seq_buf: Use size_t for len in seq_buf_puts()
        seq_buf: Make seq_buf_puts() null-terminate the buffer
        arm64: Use ftrace_graph_get_ret_stack() instead of curr_ret_stack
        ...
      495d714a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha · f12e840c
      Linus Torvalds authored
      Pull alpha architecture updates from Matt Turner:
       "A few small changes for alpha as well as the new system call table
        generation support from Firoz Khan"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
        alpha: Remove some unused variables
        alpha: rtc: simplify alpha_rtc_init
        alpha: Fix a typo on ptrace.h
        alpha: fix spelling mistake QSD_PORT_ACTUVE -> QSD_PORT_ACTIVE
        alpha: generate uapi header and syscall table header files
        alpha: add system call table generation support
        alpha: add __NR_syscalls along with NR_SYSCALLS
        alpha: remove CONFIG_OSF4_COMPAT flag from syscall table
        alpha: move __IGNORE* entries to non uapi header
      f12e840c
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e3ed513b
      Linus Torvalds authored
      Pull scheduler fix from Ingo Molnar:
       "This is a revert for a lockup in cgroups-intense workloads - the real
        fixes will come later"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Fix infinite loop in update_blocked_averages() by reverting a9e7f654
      e3ed513b
    • Linus Torvalds's avatar
      Merge tag 'dax-fix-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 2a1a2c1a
      Linus Torvalds authored
      Pull dax fix from Dan Williams:
       "Clean up unnecessary usage of prepare_to_wait_exclusive().
      
        While I feel a bit silly sending a single-commit pull-request there is
        nothing else queued up for dax this cycle. This change has shipped in
        -next for multiple releases"
      
      * tag 'dax-fix-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        dax: Use non-exclusive wait in wait_entry_unlocked()
      2a1a2c1a
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 9ab97aea
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "In this round, we've focused on bug fixes since Pixel devices have
        been shipping with f2fs. Some of them were related to hardware
        encryption support which are actually not an issue in mainline, but
        would be better to merge them in order to avoid potential bugs.
      
        Enhancements:
         - do GC sub-sections when the section is large
         - add a flag in ioctl(SHUTDOWN) to trigger fsck for QA
         - use kvmalloc() in order to give another chance to avoid ENOMEM
      
        Bug fixes:
         - fix accessing memory boundaries in a malformed iamge
         - GC gives stale unencrypted block
         - GC counts in large sections
         - detect idle time more precisely
         - block allocation of DIO writes
         - race conditions between write_begin and write_checkpoint
         - allow GCs for node segments via ioctl()
      
        There are various clean-ups and minor bug fixes as well"
      
      * tag 'f2fs-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (43 commits)
        f2fs: sanity check of xattr entry size
        f2fs: fix use-after-free issue when accessing sbi->stat_info
        f2fs: check PageWriteback flag for ordered case
        f2fs: fix validation of the block count in sanity_check_raw_super
        f2fs: fix missing unlock(sbi->gc_mutex)
        f2fs: fix to dirty inode synchronously
        f2fs: clean up structure extent_node
        f2fs: fix block address for __check_sit_bitmap
        f2fs: fix sbi->extent_list corruption issue
        f2fs: clean up checkpoint flow
        f2fs: flush stale issued discard candidates
        f2fs: correct wrong spelling, issing_*
        f2fs: use kvmalloc, if kmalloc is failed
        f2fs: remove redundant comment of unused wio_mutex
        f2fs: fix to reorder set_page_dirty and wait_on_page_writeback
        f2fs: clear PG_writeback if IPU failed
        f2fs: add an ioctl() to explicitly trigger fsck later
        f2fs: avoid frequent costly fsck triggers
        f2fs: fix m_may_create to make OPU DIO write correctly
        f2fs: fix to update new block address correctly for OPU
        ...
      9ab97aea
    • Vinod Koul's avatar
      Merge branch 'topic/xilinx' into for-linus · 66061182
      Vinod Koul authored
      66061182
    • Vinod Koul's avatar
      Merge branch 'topic/uniphier' into for-linus · 69ca36b3
      Vinod Koul authored
      69ca36b3
    • Vinod Koul's avatar
      Merge branch 'topic/sprd' into for-linus · 990beed9
      Vinod Koul authored
      990beed9
    • Vinod Koul's avatar
      Merge branch 'topic/sh' into for-linus · f782086a
      Vinod Koul authored
      f782086a
    • Vinod Koul's avatar
      Merge branch 'topic/sa11x0' into for-linus · 56e8e1a1
      Vinod Koul authored
      56e8e1a1
    • Vinod Koul's avatar
      Merge branch 'topic/mtk' into for-linus · 68ded1dc
      Vinod Koul authored
      68ded1dc
    • Vinod Koul's avatar
      Merge branch 'topic/imx' into for-linus · 23a1bff7
      Vinod Koul authored
      23a1bff7
    • Vinod Koul's avatar
      Merge branch 'topic/ep93xx' into for-linus · b7ff66ca
      Vinod Koul authored
      b7ff66ca
    • Vinod Koul's avatar
      Merge branch 'topic/dw' into for-linus · 010299bf
      Vinod Koul authored
      010299bf
    • Vinod Koul's avatar
      Merge branch 'topic/dmatest' into for-linus · 466e601a
      Vinod Koul authored
      466e601a
    • Vinod Koul's avatar
      77ee1aac
    • Vinod Koul's avatar
      Merge branch 'topic/coh' into for-linus · 5f443256
      Vinod Koul authored
      5f443256
    • Vinod Koul's avatar
      Merge branch 'topic/bcm' into for-linus · 7c2269e9
      Vinod Koul authored
      7c2269e9
    • Alexandre Belloni's avatar
      rtc: rename core files · 36e14f5f
      Alexandre Belloni authored
      Rename core files so there is a clearer separation between the RTC core and
      the RTC drivers.
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      36e14f5f
  3. 30 Dec, 2018 9 commits
    • Alexandre Belloni's avatar
      rtc: nvmem: fix possible use after free · bba3d2da
      Alexandre Belloni authored
      In cas of probe failure, devres may free the memory allocated for
      rtc->nvram before devm_rtc_release_device() is called. This leads to
      rtc_nvram_unregister using it after being freed which may lead to a crash.
      
      This has been shown to happen after commit 461e557b ("rtc: nvmem: use
      devm_nvmem_register()")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      bba3d2da
    • Linus Torvalds's avatar
      sched/fair: Fix infinite loop in update_blocked_averages() by reverting a9e7f654 · c40f7d74
      Linus Torvalds authored
      Zhipeng Xie, Xie XiuQi and Sargun Dhillon reported lockups in the
      scheduler under high loads, starting at around the v4.18 time frame,
      and Zhipeng Xie tracked it down to bugs in the rq->leaf_cfs_rq_list
      manipulation.
      
      Do a (manual) revert of:
      
        a9e7f654 ("sched/fair: Fix O(nr_cgroups) in load balance path")
      
      It turns out that the list_del_leaf_cfs_rq() introduced by this commit
      is a surprising property that was not considered in followup commits
      such as:
      
        9c2791f9 ("sched/fair: Fix hierarchical order in rq->leaf_cfs_rq_list")
      
      As Vincent Guittot explains:
      
       "I think that there is a bigger problem with commit a9e7f654 and
        cfs_rq throttling:
      
        Let take the example of the following topology TG2 --> TG1 --> root:
      
         1) The 1st time a task is enqueued, we will add TG2 cfs_rq then TG1
            cfs_rq to leaf_cfs_rq_list and we are sure to do the whole branch in
            one path because it has never been used and can't be throttled so
            tmp_alone_branch will point to leaf_cfs_rq_list at the end.
      
         2) Then TG1 is throttled
      
         3) and we add TG3 as a new child of TG1.
      
         4) The 1st enqueue of a task on TG3 will add TG3 cfs_rq just before TG1
            cfs_rq and tmp_alone_branch will stay  on rq->leaf_cfs_rq_list.
      
        With commit a9e7f654, we can del a cfs_rq from rq->leaf_cfs_rq_list.
        So if the load of TG1 cfs_rq becomes NULL before step 2) above, TG1
        cfs_rq is removed from the list.
        Then at step 4), TG3 cfs_rq is added at the beginning of rq->leaf_cfs_rq_list
        but tmp_alone_branch still points to TG3 cfs_rq because its throttled
        parent can't be enqueued when the lock is released.
        tmp_alone_branch doesn't point to rq->leaf_cfs_rq_list whereas it should.
      
        So if TG3 cfs_rq is removed or destroyed before tmp_alone_branch
        points on another TG cfs_rq, the next TG cfs_rq that will be added,
        will be linked outside rq->leaf_cfs_rq_list - which is bad.
      
        In addition, we can break the ordering of the cfs_rq in
        rq->leaf_cfs_rq_list but this ordering is used to update and
        propagate the update from leaf down to root."
      
      Instead of trying to work through all these cases and trying to reproduce
      the very high loads that produced the lockup to begin with, simplify
      the code temporarily by reverting a9e7f654 - which change was clearly
      not thought through completely.
      
      This (hopefully) gives us a kernel that doesn't lock up so people
      can continue to enjoy their holidays without worrying about regressions. ;-)
      
      [ mingo: Wrote changelog, fixed weird spelling in code comment while at it. ]
      Analyzed-by: default avatarXie XiuQi <xiexiuqi@huawei.com>
      Analyzed-by: default avatarVincent Guittot <vincent.guittot@linaro.org>
      Reported-by: default avatarZhipeng Xie <xiezhipeng1@huawei.com>
      Reported-by: default avatarSargun Dhillon <sargun@sargun.me>
      Reported-by: default avatarXie XiuQi <xiexiuqi@huawei.com>
      Tested-by: default avatarZhipeng Xie <xiezhipeng1@huawei.com>
      Tested-by: default avatarSargun Dhillon <sargun@sargun.me>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Acked-by: default avatarVincent Guittot <vincent.guittot@linaro.org>
      Cc: <stable@vger.kernel.org> # v4.13+
      Cc: Bin Li <huawei.libin@huawei.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Fixes: a9e7f654 ("sched/fair: Fix O(nr_cgroups) in load balance path")
      Link: http://lkml.kernel.org/r/1545879866-27809-1-git-send-email-xiexiuqi@huawei.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c40f7d74
    • Christophe Leroy's avatar
      kgdb/treewide: constify struct kgdb_arch arch_kgdb_ops · cc028297
      Christophe Leroy authored
      checkpatch.pl reports the following:
      
        WARNING: struct kgdb_arch should normally be const
        #28: FILE: arch/mips/kernel/kgdb.c:397:
        +struct kgdb_arch arch_kgdb_ops = {
      
      This report makes sense, as all other ops struct, this
      one should also be const. This patch does the change.
      
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: Ley Foon Tan <lftan@altera.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Rich Felker <dalias@libc.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: x86@kernel.org
      Acked-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Acked-by: default avatarPaul Burton <paul.burton@mips.com>
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
      Acked-by: default avatarBorislav Petkov <bp@suse.de>
      Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      cc028297
    • Christophe Leroy's avatar
      mips/kgdb: prepare arch_kgdb_ops for constness · 911b7afd
      Christophe Leroy authored
      MIPS is the only architecture modifying arch_kgdb_ops during init.
      This patch makes the init static, so that it can be changed to
      const in following patch, as recommended by checkpatch.pl
      Suggested-by: default avatarPaul Burton <paul.burton@mips.com>
      Acked-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Acked-by: default avatarPaul Burton <paul.burton@mips.com>
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      911b7afd
    • Nicholas Mc Guire's avatar
      kdb: use bool for binary state indicators · 7faedcd4
      Nicholas Mc Guire authored
      defcmd_in_progress  is the state trace for command group processing
      - within a command group or not -  usable  is an indicator if a command
      set is valid (allocated/non-empty) - so use a bool for those binary
      indication here.
      Signed-off-by: default avatarNicholas Mc Guire <hofrat@osadl.org>
      Reviewed-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      7faedcd4
    • Douglas Anderson's avatar
      kdb: Don't back trace on a cpu that didn't round up · 162bc7f5
      Douglas Anderson authored
      If you have a CPU that fails to round up and then run 'btc' you'll end
      up crashing in kdb becaue we dereferenced NULL.  Let's add a check.
      It's wise to also set the task to NULL when leaving the debugger so
      that if we fail to round up on a later entry into the debugger we
      won't backtrace a stale task.
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Acked-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      162bc7f5
    • Douglas Anderson's avatar
      kgdb: Don't round up a CPU that failed rounding up before · 87b09592
      Douglas Anderson authored
      If we're using the default implementation of kgdb_roundup_cpus() that
      uses smp_call_function_single_async() we can end up hanging
      kgdb_roundup_cpus() if we try to round up a CPU that failed to round
      up before.
      
      Specifically smp_call_function_single_async() will try to wait on the
      csd lock for the CPU that we're trying to round up.  If the previous
      round up never finished then that lock could still be held and we'll
      just sit there hanging.
      
      There's not a lot of use trying to round up a CPU that failed to round
      up before.  Let's keep a flag that indicates whether the CPU started
      but didn't finish to round up before.  If we see that flag set then
      we'll skip the next round up.
      
      In general we have a few goals here:
      - We never want to end up calling smp_call_function_single_async()
        when the csd is still locked.  This is accomplished because
        flush_smp_call_function_queue() unlocks the csd _before_ invoking
        the callback.  That means that when kgdb_nmicallback() runs we know
        for sure the the csd is no longer locked.  Thus when we set
        "rounding_up = false" we know for sure that the csd is unlocked.
      - If there are no timeouts rounding up we should never skip a round
        up.
      
      NOTE #1: In general trying to continue running after failing to round
      up CPUs doesn't appear to be supported in the debugger.  When I
      simulate this I find that kdb reports "Catastrophic error detected"
      when I try to continue.  I can overrule and continue anyway, but it
      should be noted that we may be entering the land of dragons here.
      Possibly the "Catastrophic error detected" was added _because_ of the
      future failure to round up, but even so this is an area of the code
      that hasn't been strongly tested.
      
      NOTE #2: I did a bit of testing before and after this change.  I
      introduced a 10 second hang in the kernel while holding a spinlock
      that I could invoke on a certain CPU with 'taskset -c 3 cat /sys/...".
      
      Before this change if I did:
      - Invoke hang
      - Enter debugger
      - g (which warns about Catastrophic error, g again to go anyway)
      - g
      - Enter debugger
      
      ...I'd hang the rest of the 10 seconds without getting a debugger
      prompt.  After this change I end up in the debugger the 2nd time after
      only 1 second with the standard warning about 'Timed out waiting for
      secondary CPUs.'
      
      I'll also note that once the CPU finished waiting I could actually
      debug it (aka "btc" worked)
      
      I won't promise that everything works perfectly if the errant CPU
      comes back at just the wrong time (like as we're entering or exiting
      the debugger) but it certainly seems like an improvement.
      
      NOTE #3: setting 'kgdb_info[cpu].rounding_up = false' is in
      kgdb_nmicallback() instead of kgdb_call_nmi_hook() because some
      implementations override kgdb_call_nmi_hook().  It shouldn't hurt to
      have it in kgdb_nmicallback() in any case.
      
      NOTE #4: this logic is really only needed because there is no API call
      like "smp_try_call_function_single_async()" or "smp_csd_is_locked()".
      If such an API existed then we'd use it instead, but it seemed a bit
      much to add an API like this just for kgdb.
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Acked-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      87b09592
    • Douglas Anderson's avatar
      kgdb: Fix kgdb_roundup_cpus() for arches who used smp_call_function() · 3cd99ac3
      Douglas Anderson authored
      When I had lockdep turned on and dropped into kgdb I got a nice splat
      on my system.  Specifically it hit:
        DEBUG_LOCKS_WARN_ON(current->hardirq_context)
      
      Specifically it looked like this:
        sysrq: SysRq : DEBUG
        ------------[ cut here ]------------
        DEBUG_LOCKS_WARN_ON(current->hardirq_context)
        WARNING: CPU: 0 PID: 0 at .../kernel/locking/lockdep.c:2875 lockdep_hardirqs_on+0xf0/0x160
        CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.19.0 #27
        pstate: 604003c9 (nZCv DAIF +PAN -UAO)
        pc : lockdep_hardirqs_on+0xf0/0x160
        ...
        Call trace:
         lockdep_hardirqs_on+0xf0/0x160
         trace_hardirqs_on+0x188/0x1ac
         kgdb_roundup_cpus+0x14/0x3c
         kgdb_cpu_enter+0x53c/0x5cc
         kgdb_handle_exception+0x180/0x1d4
         kgdb_compiled_brk_fn+0x30/0x3c
         brk_handler+0x134/0x178
         do_debug_exception+0xfc/0x178
         el1_dbg+0x18/0x78
         kgdb_breakpoint+0x34/0x58
         sysrq_handle_dbg+0x54/0x5c
         __handle_sysrq+0x114/0x21c
         handle_sysrq+0x30/0x3c
         qcom_geni_serial_isr+0x2dc/0x30c
        ...
        ...
        irq event stamp: ...45
        hardirqs last  enabled at (...44): [...] __do_softirq+0xd8/0x4e4
        hardirqs last disabled at (...45): [...] el1_irq+0x74/0x130
        softirqs last  enabled at (...42): [...] _local_bh_enable+0x2c/0x34
        softirqs last disabled at (...43): [...] irq_exit+0xa8/0x100
        ---[ end trace adf21f830c46e638 ]---
      
      Looking closely at it, it seems like a really bad idea to be calling
      local_irq_enable() in kgdb_roundup_cpus().  If nothing else that seems
      like it could violate spinlock semantics and cause a deadlock.
      
      Instead, let's use a private csd alongside
      smp_call_function_single_async() to round up the other CPUs.  Using
      smp_call_function_single_async() doesn't require interrupts to be
      enabled so we can remove the offending bit of code.
      
      In order to avoid duplicating this across all the architectures that
      use the default kgdb_roundup_cpus(), we'll add a "weak" implementation
      to debug_core.c.
      
      Looking at all the people who previously had copies of this code,
      there were a few variants.  I've attempted to keep the variants
      working like they used to.  Specifically:
      * For arch/arc we passed NULL to kgdb_nmicallback() instead of
        get_irq_regs().
      * For arch/mips there was a bit of extra code around
        kgdb_nmicallback()
      
      NOTE: In this patch we will still get into trouble if we try to round
      up a CPU that failed to round up before.  We'll try to round it up
      again and potentially hang when we try to grab the csd lock.  That's
      not new behavior but we'll still try to do better in a future patch.
      Suggested-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Rich Felker <dalias@libc.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      3cd99ac3
    • Douglas Anderson's avatar
      kgdb: Remove irq flags from roundup · 9ef7fa50
      Douglas Anderson authored
      The function kgdb_roundup_cpus() was passed a parameter that was
      documented as:
      
      > the flags that will be used when restoring the interrupts. There is
      > local_irq_save() call before kgdb_roundup_cpus().
      
      Nobody used those flags.  Anyone who wanted to temporarily turn on
      interrupts just did local_irq_enable() and local_irq_disable() without
      looking at them.  So we can definitely remove the flags.
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Rich Felker <dalias@libc.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      9ef7fa50