android_kernel_xiaomi_sm8450/drivers
James Clark e52019c095 coresight: Fix loss of connection info when a module is unloaded
[ Upstream commit c45b2835e7b205783bdfe08cc98fa86a7c5eeb74 ]

child_fwnode should be a read only property based on the DT or ACPI. If
it's cleared on the parent device when a child is unloaded, then when
the child is loaded again the connection won't be remade.

child_dev should be cleared instead which signifies that the connection
should be remade when the child_fwnode registers a new coresight_device.

Similarly the reference count shouldn't be decremented as long as the
parent device exists. The correct place to drop the reference is in
coresight_release_platform_data() which is already done.

Reproducible on Juno with the following steps:

  # load all coresight modules.
  $ cd /sys/bus/coresight/devices/
  $ echo 1 > tmc_etr0/enable_sink
  $ echo 1 > etm0/enable_source
  # Works fine ^

  $ echo 0 > etm0/enable_source
  $ rmmod coresight-funnel
  $ modprobe coresight-funnel
  $ echo 1 > etm0/enable_source
  -bash: echo: write error: Invalid argument

Fixes: 37ea1ffddf ("coresight: Use fwnode handle instead of device names")
Fixes: 2af89ebacf29 ("coresight: Clear the connection field properly")
Tested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: James Clark <james.clark@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20230425143542.2305069-2-james.clark@arm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-27 08:44:05 +02:00
..
accessibility speakup: fix a segfault caused by switching consoles 2022-11-25 17:45:50 +01:00
acpi ACPI: thermal: drop an always true check 2023-06-09 10:30:15 +02:00
amba
android binder: fix UAF caused by faulty buffer cleanup 2023-06-05 09:07:04 +02:00
ata ata: ahci: fix enum constants for gcc-13 2023-06-14 11:09:29 +02:00
atm atm: idt77252: fix kmemleak when rmmod idt77252 2023-04-05 11:23:35 +02:00
auxdisplay
base PM: domains: fix integer overflow issues in genpd_parse_state() 2023-07-27 08:43:33 +02:00
bcma
block xen/blkfront: Only check REQ_FUA for writes 2023-06-21 15:45:36 +02:00
bluetooth Bluetooth: hci_qca: fix debugfs registration 2023-06-14 11:09:52 +02:00
bus bus: ti-sysc: Fix dispc quirk masking bool variables 2023-07-27 08:43:46 +02:00
cdrom
char hwrng: st - keep clock enabled while hwrng is registered 2023-07-27 08:44:01 +02:00
clk clk: qcom: ipq6018: fix networking resets 2023-07-27 08:44:03 +02:00
clocksource clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe 2023-07-27 08:43:33 +02:00
connector
counter counter: 104-quad-8: Fix race condition between FLAG and CNTR reads 2023-05-17 11:47:28 +02:00
cpufreq cpufreq: intel_pstate: Fix energy_performance_preference for passive 2023-07-27 08:43:34 +02:00
cpuidle cpuidle: psci: Iterate backwards over list in psci_pd_remove() 2023-03-22 13:30:05 +01:00
crypto crypto: marvell/cesa - Fix type mismatch warning 2023-07-27 08:44:00 +02:00
dax dax: Introduce alloc_dev_dax_id() 2023-07-27 08:44:00 +02:00
dca
devfreq PM/devfreq: governor: Add a private governor_data for governor 2023-01-14 10:16:31 +01:00
dio drivers: dio: fix possible memory leak in dio_init() 2023-01-14 10:15:54 +01:00
dma dmaengine: pl330: rename _start to prevent build error 2023-06-09 10:30:04 +02:00
dma-buf dma-buf: fix racing conflict of dma_heap_add() 2022-12-02 17:40:01 +01:00
edac EDAC/skx: Fix overflows on the DRAM row address mapping arrays 2023-05-17 11:47:39 +02:00
eisa
extcon extcon: Fix kernel doc of property capability fields to avoid warnings 2023-07-27 08:44:04 +02:00
firewire firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region 2023-02-15 17:22:09 +01:00
firmware firmware: arm_sdei: Fix sleep from invalid context BUG 2023-05-30 12:57:48 +01:00
fpga fpga: bridge: fix kernel-doc parameter description 2023-05-17 11:47:55 +02:00
fsi WRITE is "data source", not destination... 2023-02-15 17:22:11 +01:00
gnss
gpio gpiolib: Fix GPIO chip IRQ initialization restriction 2023-06-28 10:28:13 +02:00
gpu drm/msm/dp: Free resources after unregistering them 2023-07-27 08:43:54 +02:00
greybus
hid HID: logitech-hidpp: add HIDPP_QUIRK_DELAYED_INIT for the T651. 2023-07-27 08:43:31 +02:00
hsi HSI: omap_ssi_core: Fix error handling in ssi_init() 2023-01-14 10:16:03 +01:00
hv Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs 2023-06-28 10:28:07 +02:00
hwmon hwmon: (pmbus/adm1275) Fix problems with temperature monitoring on ADM1272 2023-07-27 08:43:52 +02:00
hwspinlock hwspinlock: qcom: correct MMIO max register for newer SoCs 2022-11-16 09:57:07 +01:00
hwtracing coresight: Fix loss of connection info when a module is unloaded 2023-07-27 08:44:05 +02:00
i2c i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle 2023-06-28 10:28:16 +02:00
i3c
ide
idle intel_idle: Disable IBRS during long idle 2022-07-25 11:26:43 +02:00
iio iio: dac: build ad5758 driver when AD5758 is selected 2023-06-09 10:30:14 +02:00
infiniband RDMA/bnxt_re: Avoid calling wake_up threads from spin_lock context 2023-07-27 08:43:53 +02:00
input Input: adxl34x - do not hardcode interrupt trigger type 2023-07-27 08:43:46 +02:00
interconnect interconnect: qcom: osm-l3: fix icc_onecell_data allocation 2023-04-05 11:23:29 +02:00
iommu iommu/amd: Don't block updates to GATag if guest mode is on 2023-06-09 10:30:04 +02:00
ipack
irqchip irqchip/jcore-aic: Fix missing allocation of IRQ descriptors 2023-07-27 08:43:33 +02:00
isdn mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() 2023-01-14 10:16:10 +01:00
leds leds: tca6507: Fix error handling of using fwnode_property_read_string 2023-05-17 11:48:04 +02:00
lightnvm
macintosh macintosh: via-pmu-led: requires ATA to be set 2023-05-17 11:48:00 +02:00
mailbox mailbox: mailbox-test: fix a locking issue in mbox_test_message_write() 2023-06-09 10:30:12 +02:00
mcb mcb-pci: Reallocate memory region to avoid memory overlapping 2023-05-30 12:57:50 +01:00
md md/raid10: fix io loss while replacement replace rdev 2023-07-27 08:43:32 +02:00
media media: usb: siano: Fix warning due to null work_func_t function pointer 2023-07-27 08:44:03 +02:00
memory memory: brcmstb_dpfe: fix testing array offset after use 2023-07-27 08:43:48 +02:00
memstick memstick r592: make memstick_debug_get_tpc_name() static 2023-07-27 08:43:40 +02:00
message scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition 2023-05-30 12:57:49 +01:00
mfd mfd: dln2: Fix memory leak in dln2_probe() 2023-05-30 12:57:51 +01:00
misc eeprom: at24: also select REGMAP 2023-06-14 11:09:57 +02:00
mmc mmc: usdhi60rol0: fix deferred probing 2023-06-28 10:28:12 +02:00
most
mtd mtd: rawnand: marvell: don't set the NAND frequency select 2023-06-09 10:30:07 +02:00
mux
net ipvlan: Fix return value of ipvlan_queue_xmit() 2023-07-27 08:43:43 +02:00
nfc nfcsim.c: Fix error checking for debugfs_create_dir 2023-06-28 10:28:14 +02:00
ntb NTB: ntb_tool: uninitialized heap data in tool_fn_write() 2022-08-25 11:38:01 +02:00
nubus nubus: Partially revert proc_create_single_data() conversion 2023-07-27 08:43:31 +02:00
nvdimm nvdimm: Fix badblocks clear off-by-one error 2022-07-07 17:52:15 +02:00
nvme nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage" 2023-05-17 11:47:51 +02:00
nvmem nvmem: core: fix return value 2023-02-22 12:56:00 +01:00
of of: Fix modalias string generation 2023-05-17 11:47:56 +02:00
opp OPP: fix error checking in opp_migrate_dentry() 2023-03-11 16:39:26 +01:00
oprofile
parisc parisc: led: Fix potential null-ptr-deref in start_task() 2023-01-14 10:16:36 +01:00
parport parport_pc: Avoid FIFO port location truncation 2022-11-25 17:45:44 +01:00
pci PCI: ftpci100: Release the clock resources 2023-07-27 08:43:56 +02:00
pcmcia
perf perf/arm-cmn: Fix DTC reset 2023-07-27 08:43:33 +02:00
phy phy: tegra: xusb: Clear the driver reference in usb-phy dev 2023-07-27 08:44:01 +02:00
pinctrl pinctrl: at91-pio4: check return value of devm_kasprintf() 2023-07-27 08:43:58 +02:00
platform platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0 2023-06-21 15:45:36 +02:00
pnp PNP: fix name memory leak in pnp_alloc_dev() 2023-01-14 10:15:17 +01:00
power power: supply: Fix logic checking if system is running from battery 2023-06-21 15:45:36 +02:00
powercap powercap: RAPL: Fix CONFIG_IOSF_MBI dependency 2023-07-27 08:43:34 +02:00
pps
ps3
ptp ptp_qoriq: fix memory leak in probe() 2023-04-05 11:23:47 +02:00
pwm pwm: mtk-disp: Disable shadow registers before setting backlight values 2023-05-17 11:48:04 +02:00
rapidio rapidio: devices: fix missing put_device in mport_cdev_open 2023-01-14 10:15:23 +01:00
ras
regulator regulator: core: Streamline debugfs operations 2023-07-27 08:43:38 +02:00
remoteproc remoteproc: stm32_rproc: Add mutex protection for workqueue 2023-05-30 12:57:48 +01:00
reset reset: imx7: Fix the iMX8MP PCIe PHY PERST support 2022-10-05 10:38:40 +02:00
rpmsg rpmsg: glink: Avoid infinite loop on intent for missing channel 2023-03-11 16:39:47 +01:00
rtc rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time 2023-05-17 11:48:01 +02:00
s390 s390/cio: unregister device when the only path is gone 2023-06-28 10:28:15 +02:00
sbus
scsi scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe() 2023-07-27 08:43:56 +02:00
sfi
sh
siox siox: fix possible memory leak in siox_device_add() 2022-11-25 17:45:44 +01:00
slimbus slimbus: stream: correct presence rate frequencies 2022-11-25 17:45:50 +01:00
soc drivers: meson: secure-pwrc: always enable DMA domain 2023-07-27 08:43:55 +02:00
soundwire soundwire: cadence: Drain the RX FIFO after an IO timeout 2023-03-11 16:40:18 +01:00
spi spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG 2023-07-27 08:43:36 +02:00
spmi spmi: Add a check for remove callback when removing a SPMI driver 2023-05-17 11:47:59 +02:00
ssb
staging media: atomisp: fix "variable dereferenced before check 'asd'" 2023-07-27 08:43:30 +02:00
target scsi: target: iscsi: Prevent login threads from racing between each other 2023-06-28 10:28:14 +02:00
tc
tee tee: amdtee: Add return_origin to 'struct tee_cmd_load_ta' 2023-06-14 11:09:53 +02:00
thermal thermal/drivers/sun8i: Fix some error handling paths in sun8i_ths_probe() 2023-07-27 08:43:34 +02:00
thunderbolt thunderbolt: Use const qualifier for ring_interrupt_index 2023-04-05 11:23:37 +02:00
tty serial: 8250: lock port for UART_IER access in omap8250_irq() 2023-07-27 08:44:04 +02:00
uio uio: uio_dmem_genirq: Fix deadlock between irq config and handling 2023-01-14 10:15:55 +01:00
usb usb: hide unused usbfs_notify_suspend/resume functions 2023-07-27 08:44:04 +02:00
vdpa vdpa/mlx5: Don't clear mr struct on destroy MR 2023-03-11 16:39:45 +01:00
vfio vfio/type1: prevent underflow of locked_vm via exec() 2023-03-11 16:40:07 +01:00
vhost vhost: support PACKED when setting-getting vring_base 2023-06-14 11:09:57 +02:00
video fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe() 2023-07-27 08:43:51 +02:00
virt vboxguest: Do not use devm for irq 2022-08-25 11:38:14 +02:00
virtio virtio_mmio: Restore guest page size on resume 2022-07-21 21:20:13 +02:00
visorbus
vlynq
vme vme: Fix error not catched in fake_init() 2023-01-14 10:16:00 +01:00
w1 w1: fix loop in w1_fini() 2023-07-27 08:44:02 +02:00
watchdog watchdog: menz069_wdt: fix watchdog initialisation 2023-06-09 10:30:07 +02:00
xen xen/pvcalls-back: fix double frees with pvcalls_new_active_socket() 2023-05-30 12:57:58 +01:00
zorro
Kconfig
Makefile