Semen Protsenko
09afa276d5
gpio: max732x: Fix possible deadlock
This patch was derived from next one:
"gpio: fix pca953x set_type 'scheduling while atomic' bug".
After adding entry that consumes max732x GPIO as interrupt line to dts
file, deadlock appears somewhere in max732x probe function.
Deadlock caught by lockdep (from kernel log):
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>>>>>>>>>>
[ 0.473419] ======================================================
[ 0.473419] [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]
[ 0.473449] 3.x.xx-xxxxx-xxxxxxxx-dirty #2 Tainted: G W
[ 0.473449] ------------------------------------------------------
[ 0.473449] swapper/0/1 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
[ 0.473449] (&lock->wait_lock){+.+...}, at: [<c072e350>] rt_mutex_trylock+0xc/0x74
[ 0.473480]
[ 0.473480] and this task is already holding:
[ 0.473510] (&chip->lock){......}, at: [<c0314514>] max732x_gpio_set_value+0x2c/0xa4
[ 0.473541] which would create a new lock dependency:
[ 0.473541] (&chip->lock){......} -> (&lock->wait_lock){+.+...}
...
[ 0.474273] *** DEADLOCK ***
[ 0.474273]
[ 0.474273] 5 locks held by swapper/0/1:
[ 0.474273] #0: (&__lockdep_no_validate__){......}, at: [<c03b2328>] __driver_attach+0x48/0x98
[ 0.474304] #1: (&__lockdep_no_validate__){......}, at: [<c03b2338>] __driver_attach+0x58/0x98
[ 0.474334] #2: (&chip->irq_lock){+.+...}, at: [<c0313e3c>] max732x_irq_bus_lock+0x14/0x20
[ 0.474365] #3: (&irq_desc_lock_class){-.....}, at: [<c00a65a4>] __irq_get_desc_lock+0x48/0x88
[ 0.474365] #4: (&chip->lock){......}, at: [<c0314514>] max732x_gpio
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>>>>>>>>>>
Signed-off-by: Semen Protsenko <semen.protsenko@globallogic.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
2015-01-15 18:03:49 +01:00 |
| .. |
|
accessibility
|
|
|
|
acpi
|
Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2014-12-19 14:02:02 -08:00 |
|
amba
|
Char/Misc driver patches for 3.19-rc1
|
2014-12-14 16:43:47 -08:00 |
|
android
|
|
|
|
ata
|
More ACPI and power management updates for 3.19-rc1
|
2014-12-18 20:28:33 -08:00 |
|
atm
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
auxdisplay
|
|
|
|
base
|
More ACPI and power management updates for 3.19-rc1
|
2014-12-18 20:28:33 -08:00 |
|
bcma
|
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
|
2014-12-11 17:56:37 -08:00 |
|
block
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
|
2014-12-17 16:03:12 -08:00 |
|
bluetooth
|
Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
|
2014-12-15 13:23:09 -05:00 |
|
bus
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
cdrom
|
|
|
|
char
|
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
|
2014-12-25 16:04:15 -08:00 |
|
clk
|
Please consider pulling the clk framework changes toward 3.19. It is
|
2014-12-20 16:42:36 -08:00 |
|
clocksource
|
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
|
2014-12-11 17:56:37 -08:00 |
|
connector
|
|
|
|
coresight
|
|
|
|
cpufreq
|
Update/Remove soon-to-be-dead email address
|
2014-12-19 12:56:15 -08:00 |
|
cpuidle
|
powerpc updates for 3.19 batch 2
|
2014-12-19 12:57:45 -08:00 |
|
crypto
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
dca
|
|
|
|
devfreq
|
|
|
|
dio
|
|
|
|
dma
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
dma-buf
|
|
|
|
edac
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
eisa
|
|
|
|
extcon
|
Char/Misc driver patches for 3.19-rc1
|
2014-12-14 16:43:47 -08:00 |
|
firewire
|
firewire: sbp2: replace card lock by target lock
|
2014-12-10 20:53:21 +01:00 |
|
firmware
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
fmc
|
|
|
|
gpio
|
gpio: max732x: Fix possible deadlock
|
2015-01-15 18:03:49 +01:00 |
|
gpu
|
Revert "drm/gem: Warn on illegal use of the dumb buffer interface v2"
|
2014-12-24 13:13:22 +10:00 |
|
hid
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
|
2014-12-12 10:26:47 -08:00 |
|
hsi
|
* misc. fixes in omap-ssi and nokia-modem drivers
|
2014-12-15 17:33:47 -08:00 |
|
hv
|
Char/Misc driver patches for 3.19-rc1
|
2014-12-14 16:43:47 -08:00 |
|
hwmon
|
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
|
2014-12-17 10:16:27 -08:00 |
|
hwspinlock
|
|
|
|
i2c
|
Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
|
2014-12-20 13:52:52 -08:00 |
|
ide
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
idle
|
|
|
|
iio
|
Staging patches for 3.19-rc1
|
2014-12-15 18:06:13 -08:00 |
|
infiniband
|
SCSI for-linus on 20141220
|
2014-12-20 13:42:57 -08:00 |
|
input
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
|
2014-12-17 10:06:02 -08:00 |
|
iommu
|
Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2014-12-19 14:02:02 -08:00 |
|
ipack
|
|
|
|
irqchip
|
Merge branch 'irq-irqdomain-arm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2014-12-15 17:30:09 -08:00 |
|
isdn
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
|
2014-12-12 10:08:06 -08:00 |
|
leds
|
More ACPI and power management updates for 3.19-rc1
|
2014-12-18 20:28:33 -08:00 |
|
lguest
|
virtio: allow finalize_features to fail
|
2014-12-09 16:32:32 +02:00 |
|
macintosh
|
macintosh: therm_pm72: delete deprecated driver
|
2014-12-19 19:32:47 +01:00 |
|
mailbox
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
mcb
|
|
|
|
md
|
dm: fix missed error code if .end_io isn't implemented by target_type
|
2014-12-17 12:31:13 -05:00 |
|
media
|
More ACPI and power management updates for 3.19-rc1
|
2014-12-18 20:28:33 -08:00 |
|
memory
|
MTD updates for 3.19:
|
2014-12-17 09:59:26 -08:00 |
|
memstick
|
|
|
|
message
|
|
|
|
mfd
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
misc
|
powerpc updates for 3.19 batch 2
|
2014-12-19 12:57:45 -08:00 |
|
mmc
|
More ACPI and power management updates for 3.19-rc1
|
2014-12-18 20:28:33 -08:00 |
|
mtd
|
MTD updates for 3.19:
|
2014-12-17 09:59:26 -08:00 |
|
net
|
Main batch of InfiniBand/RDMA changes for 3.19:
|
2014-12-18 20:10:44 -08:00 |
|
nfc
|
More ACPI and power management updates for 3.19-rc1
|
2014-12-18 20:28:33 -08:00 |
|
ntb
|
|
|
|
nubus
|
|
|
|
of
|
ARM: SoC/iommu configuration for 3.19
|
2014-12-16 14:53:01 -08:00 |
|
oprofile
|
|
|
|
parisc
|
|
|
|
parport
|
Char/Misc driver patches for 3.19-rc1
|
2014-12-14 16:43:47 -08:00 |
|
pci
|
Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2014-12-19 14:02:02 -08:00 |
|
pcmcia
|
Char/Misc driver patches for 3.19-rc1
|
2014-12-14 16:43:47 -08:00 |
|
phy
|
More ACPI and power management updates for 3.19-rc1
|
2014-12-18 20:28:33 -08:00 |
|
pinctrl
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
platform
|
platform-drivers-x86 for 3.19
|
2014-12-18 20:24:55 -08:00 |
|
pnp
|
|
|
|
power
|
More ACPI and power management updates for 3.19-rc1
|
2014-12-18 20:28:33 -08:00 |
|
powercap
|
|
|
|
pps
|
|
|
|
ps3
|
|
|
|
ptp
|
|
|
|
pwm
|
pwm: Changes for v3.19-rc1
|
2014-12-17 10:10:51 -08:00 |
|
rapidio
|
|
|
|
ras
|
|
|
|
regulator
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
remoteproc
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
reset
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
rpmsg
|
|
|
|
rtc
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
s390
|
Driver core patches for 3.19-rc1
|
2014-12-14 16:10:09 -08:00 |
|
sbus
|
|
|
|
scsi
|
SCSI for-linus on 20141220
|
2014-12-20 13:42:57 -08:00 |
|
sfi
|
|
|
|
sh
|
drivers: sh / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
|
2014-12-05 03:08:24 +01:00 |
|
sn
|
|
|
|
soc
|
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
|
2014-12-15 15:52:01 -08:00 |
|
spi
|
spi: Replace CONFIG_PM_RUNTIME with CONFIG_PM
|
2014-12-19 15:25:31 +01:00 |
|
spmi
|
|
|
|
ssb
|
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
|
2014-12-11 17:56:37 -08:00 |
|
staging
|
[regression] braino in "lustre: use is_root_inode()"
|
2014-12-26 22:43:19 -05:00 |
|
target
|
SCSI for-linus on 20141220
|
2014-12-20 13:42:57 -08:00 |
|
tc
|
|
|
|
thermal
|
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2014-12-19 13:29:20 -08:00 |
|
thunderbolt
|
|
|
|
tty
|
tty: 8250_omap: Replace CONFIG_PM_RUNTIME with CONFIG_PM
|
2014-12-19 15:27:58 +01:00 |
|
uio
|
Char/Misc driver patches for 3.19-rc1
|
2014-12-14 16:43:47 -08:00 |
|
usb
|
SCSI for-linus on 20141220
|
2014-12-20 13:42:57 -08:00 |
|
uwb
|
|
|
|
vfio
|
VFIO updates for v3.19-rc1
|
2014-12-17 10:44:22 -08:00 |
|
vhost
|
vhost/virtio: virtio 1.0 related fixes
|
2014-12-18 20:50:30 -08:00 |
|
video
|
More ACPI and power management updates for 3.19-rc1
|
2014-12-18 20:28:33 -08:00 |
|
virt
|
|
|
|
virtio
|
vhost/virtio: virtio 1.0 related fixes
|
2014-12-18 20:50:30 -08:00 |
|
vlynq
|
|
|
|
vme
|
|
|
|
w1
|
Char/Misc driver patches for 3.19-rc1
|
2014-12-14 16:43:47 -08:00 |
|
watchdog
|
watchdog: imx2_wdt: Fix the argument of watchdog_active()
|
2014-12-18 16:01:20 +01:00 |
|
xen
|
Merge remote-tracking branch 'scsi-queue/drivers-for-3.19' into for-linus
|
2014-12-18 05:56:29 -08:00 |
|
zorro
|
|
|
|
Kconfig
|
Staging patches for 3.19-rc1
|
2014-12-15 18:06:13 -08:00 |
|
Makefile
|
Staging patches for 3.19-rc1
|
2014-12-15 18:06:13 -08:00 |