1
0
Fork 0
alistair23-linux/drivers
Wayne Lin 59593aed7e drm/dp_mst: Remove VCPI while disabling topology mgr
[ Upstream commit 64e62bdf04 ]

[Why]

This patch is trying to address the issue observed when hotplug DP
daisy chain monitors.

e.g.
src-mstb-mstb-sst -> src (unplug) mstb-mstb-sst -> src-mstb-mstb-sst
(plug in again)

Once unplug a DP MST capable device, driver will call
drm_dp_mst_topology_mgr_set_mst() to disable MST. In this function,
it cleans data of topology manager while disabling mst_state. However,
it doesn't clean up the proposed_vcpis of topology manager.
If proposed_vcpi is not reset, once plug in MST daisy chain monitors
later, code will fail at checking port validation while trying to
allocate payloads.

When MST capable device is plugged in again and try to allocate
payloads by calling drm_dp_update_payload_part1(), this
function will iterate over all proposed virtual channels to see if
any proposed VCPI's num_slots is greater than 0. If any proposed
VCPI's num_slots is greater than 0 and the port which the
specific virtual channel directed to is not in the topology, code then
fails at the port validation. Since there are stale VCPI allocations
from the previous topology enablement in proposed_vcpi[], code will fail
at port validation and reurn EINVAL.

[How]

Clean up the data of stale proposed_vcpi[] and reset mgr->proposed_vcpis
to NULL while disabling mst in drm_dp_mst_topology_mgr_set_mst().

Changes since v1:
*Add on more details in commit message to describe the issue which the
patch is trying to fix

Signed-off-by: Wayne Lin <Wayne.Lin@amd.com>
[added cc to stable]
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191205090043.7580-1-Wayne.Lin@amd.com
Cc: <stable@vger.kernel.org> # v3.17+
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-02-11 04:35:53 -08:00
..
accessibility
acpi ACPI / battery: Deal better with neither design nor full capacity not being reported 2020-02-11 04:35:20 -08:00
amba ARM updates for 5.4-rc: 2019-10-23 06:26:33 -04:00
android binder: fix log spam for existing debugfs file creation. 2020-02-01 09:34:35 +00:00
ata libata: Fix retrieving of active qcs 2020-01-09 10:19:59 +01:00
atm atm: eni: fix uninitialized variable warning 2020-02-01 09:34:46 +00:00
auxdisplay It's a somewhat calmer cycle for docs this time, as the churn of the mass 2019-09-17 16:22:26 -07:00
base PM: core: Fix handling of devices deleted during system-wide resume 2020-02-11 04:35:25 -08:00
bcma bcma: make arrays pwr_info_offset and sprom_sizes static const, shrinks object size 2019-09-13 16:44:49 +03:00
block xen/blkfront: Adjust indentation in xlvbd_alloc_gendisk 2020-01-23 08:22:54 +01:00
bluetooth Bluetooth: btusb: Disable runtime suspend on Realtek devices 2020-02-11 04:35:09 -08:00
bus bus: ti-sysc: Fix missing force mstandby quirk handling 2020-02-01 09:34:51 +00:00
cdrom cdrom: respect device capabilities during opening action 2020-01-04 19:18:25 +01:00
char ttyprintk: fix a potential deadlock in interrupt context issue 2020-02-05 21:22:41 +00:00
clk clk: tegra: Mark fuse clock as critical 2020-02-11 04:35:43 -08:00
clocksource clocksource: riscv: add notrace to riscv_sched_clock 2020-01-09 10:19:59 +01:00
connector
counter
cpufreq cpufreq: Avoid creating excessively large stack frames 2020-02-11 04:35:25 -08:00
cpuidle cpuidle: teo: Avoid using "early hits" incorrectly 2020-02-05 21:22:52 +00:00
crypto crypto: picoxcell - adjust the position of tasklet_init and fix missed tasklet_kill 2020-02-11 04:35:31 -08:00
dax
dca
devfreq PM / devfreq: Add new name attribute for sysfs 2020-02-05 21:22:40 +00:00
dio
dma dmaengine: ti: edma: fix missed failure handling 2020-01-26 10:01:08 +01:00
dma-buf dma-buf: Fix memory leak in sync_file_merge() 2019-12-21 11:04:48 +01:00
edac EDAC/ghes: Fix grain calculation 2019-12-31 16:45:16 +01:00
eisa
extcon extcon-intel-cht-wc: Don't reset USB data connection at probe 2020-02-01 09:34:46 +00:00
firewire net: add annotations on hh->hh_len lockless accesses 2020-01-09 10:20:06 +01:00
firmware firmware: arm_scmi: Fix doorbell ring logic for !CONFIG_64BIT 2020-01-26 10:01:07 +01:00
fpga Char/Misc driver patches for 5.4-rc1 2019-09-18 11:14:31 -07:00
fsi fsi: core: Fix small accesses and unaligned offsets via sysfs 2019-12-31 16:45:09 +01:00
gnss
gpio gpio: max77620: Add missing dependency on GPIOLIB_IRQCHIP 2020-02-01 09:34:45 +00:00
gpu drm/dp_mst: Remove VCPI while disabling topology mgr 2020-02-11 04:35:53 -08:00
greybus
hid HID: steam: Fix input device disappearing 2020-02-01 09:34:46 +00:00
hsi HSI changes for the 5.4 series 2019-09-22 12:02:21 -07:00
hv hv_balloon: Balloon up according to request page number 2020-02-11 04:35:21 -08:00
hwmon hwmon: (nct7802) Fix non-working alarm on voltages 2020-01-29 16:45:30 +01:00
hwspinlock
hwtracing intel_th: msu: Fix window switching without windows 2019-12-31 16:46:09 +01:00
i2c i2c: stm32f7: report dma error during probe 2020-01-26 10:01:06 +01:00
i3c
ide
idle
iio iio: st_gyro: Correct data for LSM9DS0 gyro 2020-02-01 09:34:36 +00:00
infiniband IB/core: Fix ODP get user pages flow 2020-02-11 04:35:46 -08:00
input Input: max77650-onkey - add of_match table 2020-02-05 21:22:49 +00:00
interconnect interconnect: qcom: qcs404: Walk the list safely on node removal 2019-12-17 19:55:39 +01:00
iommu iommu/amd: Support multiple PCI DMA aliases in IRQ Remapping 2020-02-01 09:34:48 +00:00
ipack
irqchip irqchip: Place CONFIG_SIFIVE_PLIC into the menu 2020-01-23 08:22:55 +01:00
isdn net: use skb_queue_empty_lockless() in poll() handlers 2019-10-28 13:33:41 -07:00
leds led: max77650: add of_match table 2020-02-05 21:22:49 +00:00
lightnvm
macintosh cpufreq: Use per-policy frequency QoS 2019-10-21 02:05:21 +02:00
mailbox mailbox: imx: Fix Tx doorbell shutdown path 2020-01-04 19:18:30 +01:00
mcb
md bcache: add readahead cache policy options via sysfs interface 2020-02-11 04:35:37 -08:00
media media: rc: ensure lirc is initialized before registering input device 2020-02-11 04:35:36 -08:00
memory memory: mtk-smi: Add PM suspend and resume ops 2020-01-17 19:48:59 +01:00
memstick memstick: jmb38x_ms: Fix an error handling path in 'jmb38x_ms_probe()' 2019-10-09 11:08:03 +02:00
message scsi: mptfusion: Fix double fetch bug in ioctl 2020-01-23 08:22:35 +01:00
mfd mfd: rn5t618: Mark ADC control register volatile 2020-02-11 04:35:52 -08:00
misc lkdtm/bugs: fix build error in lkdtm_UNSET_SMEP 2020-02-05 21:22:46 +00:00
mmc mmc: sdhci-of-at91: fix memleak on clk_get failure 2020-02-11 04:35:21 -08:00
mtd ubi: Fix an error pointer dereference in error handling code 2020-02-11 04:35:47 -08:00
mux
net net/mlx5: Deprecate usage of generic TLS HW capability bit 2020-02-11 04:35:51 -08:00
nfc NFC: pn544: Adjust indentation in pn544_hci_check_presence 2020-02-11 04:35:45 -08:00
ntb NTB: fix IDT Kconfig typos/spellos 2019-09-23 17:20:40 -04:00
nubus
nvdimm libnvdimm/btt: fix variable 'rc' set but not used 2020-01-04 19:18:12 +01:00
nvme nvmet: Fix controller use after free 2020-02-11 04:35:08 -08:00
nvmem nvmem: core: fix memory abort in cleanup path 2020-02-11 04:35:21 -08:00
of of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc 2020-02-11 04:35:25 -08:00
opp opp: Reinitialize the list_kref before adding the static OPPs again 2019-10-23 10:58:44 +05:30
oprofile
parisc parisc: Remove 32-bit DMA enforcement from sba_iommu 2019-10-14 21:44:26 +02:00
parport parport: load lowlevel driver if ports not found 2019-12-31 16:45:25 +01:00
pci PCI: keystone: Fix error handling when "num-viewport" DT property is not populated 2020-02-11 04:35:19 -08:00
pcmcia Merge branch 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2019-09-28 08:14:15 -07:00
perf perf/imx_ddr: Add enhanced AXI ID filter support 2020-02-01 09:34:49 +00:00
phy phy: qualcomm: Adjust indentation in read_poll_timeout 2020-02-11 04:35:45 -08:00
pinctrl pinctrl: sunrisepoint: Add missing Interrupt Status register offset 2020-01-29 16:45:27 +01:00
platform platform/x86: intel_scu_ipc: Fix interrupt support 2020-02-11 04:35:15 -08:00
pnp
power power: supply: ltc2941-battery-gauge: fix use-after-free 2020-02-11 04:35:24 -08:00
powercap powercap: intel_rapl: add NULL pointer check to rapl_mmio_cpu_online() 2020-01-14 20:08:18 +01:00
pps
ps3
ptp ptp: free ptp device pin descriptors properly 2020-01-23 08:22:51 +01:00
pwm pwm: sun4i: Fix incorrect calculation of duty_cycle/period 2020-01-26 10:01:04 +01:00
rapidio
ras
regulator regulator: core: Add regulator_is_equal() helper 2020-02-11 04:35:48 -08:00
remoteproc remoteproc updates for v5.4 2019-09-22 10:55:08 -07:00
reset reset: Fix {of,devm}_reset_control_array_get kerneldoc return types 2020-01-23 08:22:43 +01:00
rpmsg rpmsg: char: release allocated memory 2020-01-14 20:08:37 +01:00
rtc rtc: bd70528: fix module alias to autoload module 2020-01-26 10:01:06 +01:00
s390 s390/zcrypt: move ap device reset from bus to driver code 2020-02-05 21:22:44 +00:00
sbus
scsi scsi: ufs: Recheck bkops level if bkops is disabled 2020-02-11 04:35:44 -08:00
sfi
sh
siox
slimbus
soc soc: ti: wkup_m3_ipc: Fix race condition with rproc_boot 2020-02-05 21:22:43 +00:00
soundwire soundwire: intel: fix PDI/stream mapping for Bulk 2019-12-31 16:45:11 +01:00
spi spi: pxa2xx: Add support for Intel Comet Lake-H 2020-02-01 09:34:48 +00:00
spmi
ssb ssb: make array pwr_info_offset static const, makes object smaller 2019-09-13 17:23:18 +03:00
staging staging: mt7621-pci: add quirks for 'E2' revision using 'soc_device_attribute' 2020-02-01 09:34:47 +00:00
target scsi: RDMA/isert: Fix a recently introduced regression related to logout 2020-01-29 16:45:30 +01:00
tc
tee tee: optee: Fix compilation issue with nommu 2020-02-05 21:22:49 +00:00
thermal thermal: Fix deadlock in thermal thermal_zone_device_check 2019-12-13 08:43:21 +01:00
thunderbolt thunderbolt: Power cycle the router if NVM authentication fails 2019-12-04 22:30:50 +01:00
tty serial: imx: fix a race condition in receive path 2020-02-01 09:34:34 +00:00
uio Char/Misc driver patches for 5.4-rc1 2019-09-18 11:14:31 -07:00
usb usb: gadget: f_ecm: Use atomic_t to track in-flight request 2020-02-11 04:35:10 -08:00
vfio vfio/pci: call irq_bypass_unregister_producer() before freeing irq 2019-12-21 11:04:48 +01:00
vhost vhost/vsock: accept only packets with the right dst_cid 2020-01-04 19:19:18 +01:00
video video/hdmi: Fix AVI bar unpack 2019-12-17 19:56:42 +01:00
virt virt: vbox: fix memory leak in hgcm_call_preprocess_linaddr 2019-10-10 14:50:32 +02:00
virtio virtio_balloon: Fix memory leaks on errors in virtballoon_probe() 2020-02-11 04:35:47 -08:00
visorbus
vlynq
vme
w1 w1: ds250x: Fix build error without CRC16 2019-10-10 15:35:41 +02:00
watchdog watchdog: fix UAF in reboot notifier handling in watchdog core code 2020-02-11 04:35:37 -08:00
xen xen/balloon: Support xend-based toolstack take two 2020-02-11 04:35:36 -08:00
zorro
Kconfig Staging/IIO driver patches for 5.4-rc1 2019-09-18 11:05:34 -07:00
Makefile Staging/IIO driver patches for 5.4-rc1 2019-09-18 11:05:34 -07:00