Dave Airlie
274d835248
drm/dp/mst: drop cancel work sync in the mstb destroy path (v2)
Since 9eb1e57f56
drm/dp/mst: make sure mst_primary mstb is valid in work function
we validate the mstb structs in the work function, and doing
that takes a reference. So we should never get here with the
work function running using the mstb device, only if the work
function hasn't run yet or is running for another mstb.
So we don't need to sync the work here, this was causing
lockdep spew as below.
[ +0.000160] =============================================
[ +0.000001] [ INFO: possible recursive locking detected ]
[ +0.000002] 3.10.0-320.el7.rhel72.stable.backport.3.x86_64.debug #1 Tainted: G W ------------
[ +0.000001] ---------------------------------------------
[ +0.000001] kworker/4:2/1262 is trying to acquire lock:
[ +0.000001] ((&mgr->work)){+.+.+.}, at: [<ffffffff810b29a5>] flush_work+0x5/0x2e0
[ +0.000007]
but task is already holding lock:
[ +0.000001] ((&mgr->work)){+.+.+.}, at: [<ffffffff810b57e4>] process_one_work+0x1b4/0x710
[ +0.000004]
other info that might help us debug this:
[ +0.000001] Possible unsafe locking scenario:
[ +0.000002] CPU0
[ +0.000000] ----
[ +0.000001] lock((&mgr->work));
[ +0.000002] lock((&mgr->work));
[ +0.000001]
*** DEADLOCK ***
[ +0.000001] May be due to missing lock nesting notation
[ +0.000002] 2 locks held by kworker/4:2/1262:
[ +0.000001] #0: (events_long){.+.+.+}, at: [<ffffffff810b57e4>] process_one_work+0x1b4/0x710
[ +0.000004] #1: ((&mgr->work)){+.+.+.}, at: [<ffffffff810b57e4>] process_one_work+0x1b4/0x710
[ +0.000003]
stack backtrace:
[ +0.000003] CPU: 4 PID: 1262 Comm: kworker/4:2 Tainted: G W ------------ 3.10.0-320.el7.rhel72.stable.backport.3.x86_64.debug #1
[ +0.000001] Hardware name: LENOVO 20EGS0R600/20EGS0R600, BIOS GNET71WW (2.19 ) 02/05/2015
[ +0.000008] Workqueue: events_long drm_dp_mst_link_probe_work [drm_kms_helper]
[ +0.000001] ffffffff82c26c90 00000000a527b914 ffff88046399bae8 ffffffff816fe04d
[ +0.000004] ffff88046399bb58 ffffffff8110f47f ffff880461438000 0001009b840fc003
[ +0.000002] ffff880461438a98 0000000000000000 0000000804dc26e1 ffffffff824a2c00
[ +0.000003] Call Trace:
[ +0.000004] [<ffffffff816fe04d>] dump_stack+0x19/0x1b
[ +0.000004] [<ffffffff8110f47f>] __lock_acquire+0x115f/0x1250
[ +0.000002] [<ffffffff8110fd49>] lock_acquire+0x99/0x1e0
[ +0.000002] [<ffffffff810b29a5>] ? flush_work+0x5/0x2e0
[ +0.000002] [<ffffffff810b29ee>] flush_work+0x4e/0x2e0
[ +0.000002] [<ffffffff810b29a5>] ? flush_work+0x5/0x2e0
[ +0.000004] [<ffffffff81025905>] ? native_sched_clock+0x35/0x80
[ +0.000002] [<ffffffff81025959>] ? sched_clock+0x9/0x10
[ +0.000002] [<ffffffff810da1f5>] ? local_clock+0x25/0x30
[ +0.000002] [<ffffffff8110dca9>] ? mark_held_locks+0xb9/0x140
[ +0.000003] [<ffffffff810b4ed5>] ? __cancel_work_timer+0x95/0x160
[ +0.000002] [<ffffffff810b4ee8>] __cancel_work_timer+0xa8/0x160
[ +0.000002] [<ffffffff810b4fb0>] cancel_work_sync+0x10/0x20
[ +0.000007] [<ffffffffa0160d17>] drm_dp_destroy_mst_branch_device+0x27/0x120 [drm_kms_helper]
[ +0.000006] [<ffffffffa0163968>] drm_dp_mst_link_probe_work+0x78/0xa0 [drm_kms_helper]
[ +0.000002] [<ffffffff810b5850>] process_one_work+0x220/0x710
[ +0.000002] [<ffffffff810b57e4>] ? process_one_work+0x1b4/0x710
[ +0.000005] [<ffffffff810b5e5b>] worker_thread+0x11b/0x3a0
[ +0.000003] [<ffffffff810b5d40>] ? process_one_work+0x710/0x710
[ +0.000002] [<ffffffff810beced>] kthread+0xed/0x100
[ +0.000003] [<ffffffff810bec00>] ? insert_kthread_work+0x80/0x80
[ +0.000003] [<ffffffff817121d8>] ret_from_fork+0x58/0x90
v2: add flush_work.
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
2015-10-02 15:34:42 +10:00 |
| .. |
|
accessibility
|
|
|
|
acpi
|
ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED()
|
2015-09-15 03:05:45 +02:00 |
|
amba
|
|
|
|
android
|
mm: mark most vm_operations_struct const
|
2015-09-10 13:29:01 -07:00 |
|
ata
|
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
|
2015-09-03 16:55:55 -07:00 |
|
atm
|
solos-pci: Increase headroom on received packets
|
2015-09-17 21:29:07 -07:00 |
|
auxdisplay
|
|
|
|
base
|
driver core fix for 4.3-rc3
|
2015-09-26 20:54:53 -04:00 |
|
bcma
|
|
|
|
block
|
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
|
2015-09-19 18:57:09 -07:00 |
|
bluetooth
|
Bluetooth: hci_bcm: Fix crash on suspend
|
2015-08-28 21:09:14 +02:00 |
|
bus
|
regmap: Changes for v4.3
|
2015-09-08 16:48:55 -07:00 |
|
cdrom
|
|
|
|
char
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
|
2015-09-26 21:05:23 -04:00 |
|
clk
|
A few driver fixes for tegra, rockchip, and st SoCs and a two-liner
|
2015-09-19 20:17:40 -07:00 |
|
clocksource
|
- New Device Support
|
2015-09-04 11:35:03 -07:00 |
|
connector
|
|
|
|
cpufreq
|
cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get()
|
2015-09-16 02:17:49 +02:00 |
|
cpuidle
|
Additional power management and ACPI material for v4.3-rc1
|
2015-09-11 19:11:06 -07:00 |
|
crypto
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
|
2015-09-26 21:05:23 -04:00 |
|
dca
|
|
|
|
devfreq
|
PM / devfreq: Fix incorrect type issue.
|
2015-09-11 14:23:30 +09:00 |
|
dio
|
|
|
|
dma
|
genirq: Remove irq argument from irq flow handlers
|
2015-09-16 15:47:51 +02:00 |
|
dma-buf
|
|
|
|
edac
|
edac updates for v4.3-rc1
|
2015-09-11 16:21:12 -07:00 |
|
eisa
|
|
|
|
extcon
|
extcon: Fix attached value returned by is_extcon_changed
|
2015-09-21 15:07:19 +09:00 |
|
firewire
|
|
|
|
firmware
|
ARM: SoC fixes for v4.3-rc
|
2015-09-27 06:45:18 -04:00 |
|
fmc
|
|
|
|
gpio
|
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2015-09-18 08:11:42 -07:00 |
|
gpu
|
drm/dp/mst: drop cancel work sync in the mstb destroy path (v2)
|
2015-10-02 15:34:42 +10:00 |
|
hid
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
|
2015-09-04 12:02:11 -07:00 |
|
hsi
|
mm: mark most vm_operations_struct const
|
2015-09-10 13:29:01 -07:00 |
|
hv
|
Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc
|
2015-09-20 22:44:51 -07:00 |
|
hwmon
|
hwmon: (nct6775) Add support for NCT6793D
|
2015-09-12 19:43:02 -07:00 |
|
hwspinlock
|
|
|
|
hwtracing/coresight
|
|
|
|
i2c
|
Merge branch 'i2c/for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
|
2015-09-08 16:16:26 -07:00 |
|
ide
|
|
|
|
idle
|
|
|
|
iio
|
This is the bulk of GPIO changes for the v4.3 kernel cycle:
|
2015-09-04 10:07:45 -07:00 |
|
infiniband
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
|
2015-09-26 21:02:42 -04:00 |
|
input
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
|
2015-09-11 19:17:28 -07:00 |
|
iommu
|
fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void
|
2015-09-11 15:21:34 -07:00 |
|
ipack
|
|
|
|
irqchip
|
irqchip/atmel-aic5: Use per chip mask caches in mask/unmask()
|
2015-09-22 15:55:51 +02:00 |
|
isdn
|
libnvdimm for 4.3:
|
2015-09-08 14:35:59 -07:00 |
|
leds
|
leds:lp55xx: Correct Kconfig dependency for f/w user helper
|
2015-09-17 10:02:20 +02:00 |
|
lguest
|
|
|
|
macintosh
|
powerpc updates for 4.3
|
2015-09-03 16:41:38 -07:00 |
|
mailbox
|
Merge branch 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration
|
2015-09-05 18:11:04 -07:00 |
|
mcb
|
|
|
|
md
|
dm crypt: constrain crypt device's max_segment_size to PAGE_SIZE
|
2015-09-14 12:04:24 -04:00 |
|
media
|
media updates for v4.3-rc1
|
2015-09-11 16:42:39 -07:00 |
|
memory
|
IOMMU Updates for Linux v4.3
|
2015-09-08 17:22:35 -07:00 |
|
memstick
|
|
|
|
message
|
|
|
|
mfd
|
genirq: Remove irq argument from irq flow handlers
|
2015-09-16 15:47:51 +02:00 |
|
misc
|
Char/Misc driver fixes for 4.3-rc3
|
2015-09-26 20:53:15 -04:00 |
|
mmc
|
MMC core:
|
2015-09-08 16:33:16 -07:00 |
|
mtd
|
MTD updates #2 for 4.3-rc1:
|
2015-09-09 11:17:33 -07:00 |
|
net
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2015-09-26 06:01:33 -04:00 |
|
nfc
|
This is the bulk of GPIO changes for the v4.3 kernel cycle:
|
2015-09-04 10:07:45 -07:00 |
|
ntb
|
NTB: Fix range check on memory window index
|
2015-09-07 15:27:12 -04:00 |
|
nubus
|
|
|
|
nvdimm
|
pmem: add proper fencing to pmem_rw_page()
|
2015-09-17 11:49:28 -04:00 |
|
nvmem
|
|
|
|
of
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2015-09-26 06:01:33 -04:00 |
|
oprofile
|
|
|
|
parisc
|
PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of arch code"
|
2015-09-15 13:18:04 -05:00 |
|
parport
|
|
|
|
pci
|
PCI updates for v4.3:
|
2015-09-25 11:16:53 -07:00 |
|
pcmcia
|
pcmcia: soc_common: remove skt_dev_info's clk pointer
|
2015-09-03 16:01:03 +01:00 |
|
perf
|
|
|
|
phy
|
This is the bulk of GPIO changes for the v4.3 kernel cycle:
|
2015-09-04 10:07:45 -07:00 |
|
pinctrl
|
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2015-09-18 08:11:42 -07:00 |
|
platform
|
platform-drivers-x86 for 4.3-2
|
2015-09-17 21:41:02 -07:00 |
|
pnp
|
|
|
|
power
|
power supply and reset fixes for the v4.3 series
|
2015-09-17 12:25:42 -07:00 |
|
powercap
|
powercap / RAPL: disable the 2nd power limit properly
|
2015-08-29 01:46:40 +02:00 |
|
pps
|
|
|
|
ps3
|
|
|
|
ptp
|
|
|
|
pwm
|
pwm: Changes for v4.3-rc1
|
2015-09-09 10:55:32 -07:00 |
|
rapidio
|
|
|
|
ras
|
|
|
|
regulator
|
Merge commit 'b8c93646fd5c' into omap-for-v4.3/fixes
|
2015-09-24 16:23:20 -07:00 |
|
remoteproc
|
|
|
|
reset
|
reset: ath79: Fix missing spin_lock_init
|
2015-09-01 14:48:40 +02:00 |
|
rpmsg
|
|
|
|
rtc
|
rtc: abx80x: fix RTC write bit
|
2015-09-05 19:37:31 +02:00 |
|
s390
|
virtio: fixes on top of 4.3-rc1
|
2015-09-18 09:28:20 -07:00 |
|
sbus
|
|
|
|
scsi
|
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
|
2015-09-11 19:00:42 -07:00 |
|
sfi
|
|
|
|
sh
|
SH Drivers Updates for v4.3
|
2015-09-21 12:02:27 -07:00 |
|
sn
|
|
|
|
soc
|
genirq: Remove irq argument from irq flow handlers
|
2015-09-16 15:47:51 +02:00 |
|
spi
|
Merge remote-tracking branches 'spi/fix/spidev' and 'spi/fix/xtfpga' into spi-linus
|
2015-09-22 09:48:41 -07:00 |
|
spmi
|
genirq: Remove irq argument from irq flow handlers
|
2015-09-16 15:47:51 +02:00 |
|
ssb
|
|
|
|
staging
|
Staging driver fixes for 4.3-rc3
|
2015-09-26 20:56:50 -04:00 |
|
target
|
iscsi-target: Avoid OFMarker + IFMarker negotiation
|
2015-09-24 23:24:46 -07:00 |
|
tc
|
|
|
|
thermal
|
thermal: power_allocator: exit early if there are no cooling devices
|
2015-09-20 15:37:16 +08:00 |
|
thunderbolt
|
thunderbolt: Allow loading of module on recent Apple MacBooks with thunderbolt 2 controller
|
2015-09-20 15:20:11 -07:00 |
|
tty
|
tty: serial: Add missing module license for 8250_base.ko
|
2015-09-22 09:09:15 -07:00 |
|
uio
|
|
|
|
usb
|
USB: whiteheat: fix potential null-deref at probe
|
2015-09-23 12:15:19 -07:00 |
|
uwb
|
|
|
|
vfio
|
|
|
|
vhost
|
virtio: fixes on top of 4.3-rc1
|
2015-09-18 09:28:20 -07:00 |
|
video
|
Merge branch 'akpm' (patches from Andrew)
|
2015-09-10 18:19:42 -07:00 |
|
virt
|
|
|
|
virtio
|
virtio_balloon: do not change memory amount visible via /proc/meminfo
|
2015-09-08 13:32:11 +03:00 |
|
vlynq
|
|
|
|
vme
|
|
|
|
w1
|
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
|
2015-09-01 18:46:42 -07:00 |
|
watchdog
|
Merge git://www.linux-watchdog.org/linux-watchdog
|
2015-09-11 15:12:59 -07:00 |
|
xen
|
Merge branch 'akpm' (patches from Andrew)
|
2015-09-10 18:19:42 -07:00 |
|
zorro
|
|
|
|
Kconfig
|
Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
|
2015-09-03 16:27:01 -07:00 |
|
Makefile
|
This is the bulk of pin control changes for the v4.3 development
|
2015-09-04 10:22:09 -07:00 |