mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-09 08:43:44 +07:00
![]() If a driver calls enable_irq_wake() on a gpio turned interrupt from the msm pinctrl driver we'll get a lockdep warning like so: ============================================= [ INFO: possible recursive locking detected ] 3.14.0-rc3 #2 Not tainted --------------------------------------------- modprobe/52 is trying to acquire lock: (&irq_desc_lock_class){-.....}, at: [<c026aea0>] __irq_get_desc_lock+0x48/0x88 but task is already holding lock: (&irq_desc_lock_class){-.....}, at: [<c026aea0>] __irq_get_desc_lock+0x48/0x88 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&irq_desc_lock_class); lock(&irq_desc_lock_class); *** DEADLOCK *** May be due to missing lock nesting notation 4 locks held by modprobe/52: #0: (&__lockdep_no_validate__){......}, at: [<c04f2864>] __driver_attach+0x48/0x98 #1: (&__lockdep_no_validate__){......}, at: [<c04f2874>] __driver_attach+0x58/0x98 #2: (&irq_desc_lock_class){-.....}, at: [<c026aea0>] __irq_get_desc_lock+0x48/0x88 #3: (&(&pctrl->lock)->rlock){......}, at: [<c04bb4b8>] msm_gpio_irq_set_wake+0x20/0xa8 Silence it by putting the gpios into their own lock class. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
||
---|---|---|
.. | ||
mvebu | ||
sh-pfc | ||
sirf | ||
spear | ||
vt8500 | ||
core.c | ||
core.h | ||
devicetree.c | ||
devicetree.h | ||
Kconfig | ||
Makefile | ||
pinconf-generic.c | ||
pinconf.c | ||
pinconf.h | ||
pinctrl-ab8500.c | ||
pinctrl-ab8505.c | ||
pinctrl-ab8540.c | ||
pinctrl-ab9540.c | ||
pinctrl-abx500.c | ||
pinctrl-abx500.h | ||
pinctrl-adi2-bf54x.c | ||
pinctrl-adi2-bf60x.c | ||
pinctrl-adi2.c | ||
pinctrl-adi2.h | ||
pinctrl-as3722.c | ||
pinctrl-at91.c | ||
pinctrl-baytrail.c | ||
pinctrl-bcm2835.c | ||
pinctrl-capri.c | ||
pinctrl-coh901.c | ||
pinctrl-coh901.h | ||
pinctrl-exynos5440.c | ||
pinctrl-exynos.c | ||
pinctrl-exynos.h | ||
pinctrl-falcon.c | ||
pinctrl-imx1-core.c | ||
pinctrl-imx1.h | ||
pinctrl-imx6dl.c | ||
pinctrl-imx6q.c | ||
pinctrl-imx6sl.c | ||
pinctrl-imx23.c | ||
pinctrl-imx25.c | ||
pinctrl-imx27.c | ||
pinctrl-imx28.c | ||
pinctrl-imx35.c | ||
pinctrl-imx50.c | ||
pinctrl-imx51.c | ||
pinctrl-imx53.c | ||
pinctrl-imx.c | ||
pinctrl-imx.h | ||
pinctrl-lantiq.c | ||
pinctrl-lantiq.h | ||
pinctrl-msm8x74.c | ||
pinctrl-msm.c | ||
pinctrl-msm.h | ||
pinctrl-mxs.c | ||
pinctrl-mxs.h | ||
pinctrl-nomadik-db8500.c | ||
pinctrl-nomadik-db8540.c | ||
pinctrl-nomadik-stn8815.c | ||
pinctrl-nomadik.c | ||
pinctrl-nomadik.h | ||
pinctrl-palmas.c | ||
pinctrl-rockchip.c | ||
pinctrl-s3c24xx.c | ||
pinctrl-s3c64xx.c | ||
pinctrl-samsung.c | ||
pinctrl-samsung.h | ||
pinctrl-single.c | ||
pinctrl-st.c | ||
pinctrl-sunxi-pins.h | ||
pinctrl-sunxi.c | ||
pinctrl-sunxi.h | ||
pinctrl-tb10x.c | ||
pinctrl-tegra20.c | ||
pinctrl-tegra30.c | ||
pinctrl-tegra114.c | ||
pinctrl-tegra124.c | ||
pinctrl-tegra.c | ||
pinctrl-tegra.h | ||
pinctrl-tz1090-pdc.c | ||
pinctrl-tz1090.c | ||
pinctrl-u300.c | ||
pinctrl-utils.c | ||
pinctrl-utils.h | ||
pinctrl-vf610.c | ||
pinctrl-xway.c | ||
pinmux.c | ||
pinmux.h |