Chen-Yu Tsai
2c5ad2d642
clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled()
...
[ Upstream commit 79200d5851c8e7179f68a4a6f162d8f1bde4986f ]
In the previous commits that added CLK_OPS_PARENT_ENABLE, support for
this flag was only added to rate change operations (rate setting and
reparent) and disabling unused subtree. It was not added to the
clock gate related operations. Any hardware driver that needs it for
these operations will either see bogus results, or worse, hang.
This has been seen on MT8192 and MT8195, where the imp_ii2_* clk
drivers set this, but dumping debugfs clk_summary would cause it
to hang.
Prepare parent on prepare and enable parent on enable dependencies are
already handled automatically by the core as part of its sequencing.
Whether the case for "enable parent on prepare" should be supported by
this flag or not is not clear, and thus ignored for now.
This change solely fixes the handling of clk_core_is_enabled, i.e.
enabling the parent clock when reading the hardware state. Unfortunately
clk_core_is_enabled is called in a variety of places, sometimes with
the enable clock already held. To avoid deadlocking, the core will
ignore readouts and just return false if CLK_OPS_PARENT_ENABLE is set
but the parent isn't currently enabled.
Fixes: fc8726a2c0 ("clk: core: support clocks which requires parents enable (part 2)")
Fixes: a4b3518d14 ("clk: core: support clocks which requires parents enable (part 1)")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://lore.kernel.org/r/20230103092330.494102-1-wenst@chromium.org
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-03-11 16:43:51 +01:00
..
accessibility
acpi
ACPI: battery: Fix missing NUL-termination with large strings
2023-03-11 16:43:39 +01:00
amba
android
binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0
2022-12-08 11:23:01 +01:00
ata
ata: libata: Fix sata_down_spd_limit() when no link speed is reported
2023-02-22 12:50:24 +01:00
atm
auxdisplay
base
driver core: Fix test_async_probe_init saves device in wrong array
2023-02-06 07:52:40 +01:00
bcma
block
drbd: use after free in drbd_create_device()
2022-11-25 17:42:16 +01:00
bluetooth
Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave()
2023-01-18 11:41:16 +01:00
bus
bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()
2023-02-22 12:50:23 +01:00
cdrom
char
ipmi: fix use after free in _ipmi_destroy_user()
2023-01-18 11:41:49 +01:00
clk
clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled()
2023-03-11 16:43:51 +01:00
clocksource
clocksource/drivers/sh_cmt: Make sure channel clock supply is enabled
2023-01-18 11:40:56 +01:00
connector
counter
counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update
2023-01-18 11:41:24 +01:00
cpufreq
cpufreq: armada-37xx: stop using 0 as NULL pointer
2023-02-06 07:52:41 +01:00
cpuidle
cpuidle: dt: Return the correct numbers of parsed idle states
2023-01-18 11:40:53 +01:00
crypto
crypto: crypto4xx - Call dma_unmap_page when done
2023-03-11 16:43:42 +01:00
dax
dca
devfreq
PM/devfreq: governor: Add a private governor_data for governor
2023-01-18 11:41:52 +01:00
dio
drivers: dio: fix possible memory leak in dio_init()
2023-01-18 11:41:21 +01:00
dma
dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size
2023-03-03 11:41:48 +01:00
dma-buf
edac
EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info
2023-02-06 07:52:44 +01:00
eisa
extcon
firewire
firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region
2023-02-22 12:50:22 +01:00
firmware
efi: Accept version 2 of memory attributes table
2023-02-22 12:50:27 +01:00
fpga
fpga: stratix10-soc: Fix return value check in s10_ops_write_init()
2023-02-22 12:50:28 +01:00
fsi
WRITE is "data source", not destination...
2023-02-22 12:50:23 +01:00
gnss
gpio
gpio: vf610: connect GPIO label to dev name
2023-03-11 16:43:47 +01:00
gpu
drm/mediatek: Clean dangling pointer on bind error path
2023-03-11 16:43:46 +01:00
greybus
hid
hid: bigben_probe(): validate report count
2023-03-11 16:43:49 +01:00
hsi
HSI: omap_ssi_core: Fix error handling in ssi_init()
2023-01-18 11:41:28 +01:00
hv
Drivers: hv: vmbus: fix possible memory leak in vmbus_device_register()
2022-12-08 11:22:58 +01:00
hwmon
hwmon: (mlxreg-fan) Return zero speed for broken fan
2023-03-11 16:43:47 +01:00
hwspinlock
hwtracing
i2c
i2c: rk3x: fix a bunch of kernel-doc warnings
2023-02-22 12:50:25 +01:00
i3c
ide
idle
intel_idle: Disable IBRS during long idle
2022-10-07 09:16:55 +02:00
iio
iio:adc:twl6030: Enable measurement of VAC
2023-02-22 12:50:30 +01:00
infiniband
IB/hfi1: Assign npages earlier
2023-03-03 11:41:48 +01:00
input
Input: ads7846 - don't check penirq immediately for 7845
2023-03-11 16:43:51 +01:00
interconnect
iommu
iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()
2023-02-22 12:50:42 +01:00
ipack
irqchip
irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts
2023-03-11 16:43:43 +01:00
isdn
mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
2023-01-18 11:41:32 +01:00
leds
lightnvm
macintosh
macintosh/macio-adb: check the return value of ioremap()
2023-01-18 11:41:29 +01:00
mailbox
mailbox: zynq-ipi: fix error handling while device_register() fails
2023-01-18 11:41:33 +01:00
mcb
mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
2023-01-18 11:41:25 +01:00
md
dm: remove flush_scheduled_work() during local_exit()
2023-03-11 16:43:47 +01:00
media
media: s5p-mfc: Fix in register read and write for H264
2023-01-18 11:41:53 +01:00
memory
memory: mvebu-devbus: Fix missing clk_disable_unprepare in mvebu_devbus_probe()
2023-02-06 07:52:34 +01:00
memstick
message
mfd
mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read()
2023-03-11 16:43:50 +01:00
misc
misc: fastrpc: Fix use-after-free race condition for maps
2023-01-24 07:18:00 +01:00
mmc
mmc: mmc_spi: fix error handling in mmc_spi_probe()
2023-02-22 12:50:39 +01:00
mtd
mtd: rawnand: sunxi: Fix the size of the last OOB region
2023-03-11 16:43:50 +01:00
mux
net
can: esd_usb: Move mislocated storage of SJA1000_ECC_SEG bits in case of a bus error
2023-03-11 16:43:43 +01:00
nfc
nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame()
2023-01-18 11:42:04 +01:00
ntb
nubus
nvdimm
nvme
nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association
2023-02-22 12:50:35 +01:00
nvmem
nvmem: core: fix cell removal on error
2023-02-22 12:50:28 +01:00
of
of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry() and find_dup_cset_prop()
2023-01-18 11:41:14 +01:00
opp
OPP: fix error checking in opp_migrate_dentry()
2023-03-11 16:43:41 +01:00
oprofile
parisc
parisc: led: Fix potential null-ptr-deref in start_task()
2023-01-18 11:41:50 +01:00
parport
parport_pc: Avoid FIFO port location truncation
2022-11-25 17:42:14 +01:00
pci
PCI/sysfs: Fix double free in error path
2023-01-18 11:41:49 +01:00
pcmcia
perf
perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init()
2023-01-18 11:40:50 +01:00
phy
phy: rockchip-inno-usb2: Fix missing clk_disable_unprepare() in rockchip_usb2phy_power_on()
2023-02-06 07:52:37 +01:00
pinctrl
pinctrl: stm32: Fix refcount leak in stm32_pctrl_get_irq_domain
2023-03-11 16:43:44 +01:00
platform
platform/x86: asus-nb-wmi: Add alternate mapping for KEY_SCREENLOCK
2023-02-06 07:52:42 +01:00
pnp
PNP: fix name memory leak in pnp_alloc_dev()
2023-01-18 11:40:54 +01:00
power
power: supply: fix null pointer dereferencing in power_supply_get_battery_info
2023-01-18 11:41:28 +01:00
powercap
powercap: fix possible name leak in powercap_register_zone()
2023-03-11 16:43:40 +01:00
pps
ps3
ptp
pwm
pwm: sifive: Call pwm_sifive_update_clock() while mutex is held
2023-01-18 11:41:30 +01:00
rapidio
rapidio: devices: fix missing put_device in mport_cdev_open
2023-01-18 11:40:59 +01:00
ras
regulator
regulator: da9211: Use irq handler when ready
2023-01-18 11:42:04 +01:00
remoteproc
remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in adsp_alloc_memory_region()
2023-01-18 11:41:31 +01:00
reset
rpmsg
rpmsg: qcom: glink: replace strncpy() with strscpy_pad()
2022-10-15 07:54:38 +02:00
rtc
rtc: mxc_v2: Add missing clk_disable_unprepare()
2023-01-18 11:41:32 +01:00
s390
treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
2023-03-11 16:43:42 +01:00
sbus
scsi
scsi: aic94xx: Add missing check for dma_map_single()
2023-03-11 16:43:47 +01:00
sfi
sh
siox
siox: fix possible memory leak in siox_device_add()
2022-11-25 17:42:14 +01:00
slimbus
slimbus: stream: correct presence rate frequencies
2022-11-25 17:42:17 +01:00
soc
ARM: ux500: do not directly dereference __iomem
2023-01-18 11:41:46 +01:00
soundwire
spi
spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one()
2023-03-11 16:43:47 +01:00
spmi
spmi: pmic-arb: correct duplicate APID to PPID mapping logic
2022-10-26 13:22:43 +02:00
ssb
staging
treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
2023-03-11 16:43:42 +01:00
target
scsi: target: core: Fix warning on RT kernels
2023-02-22 12:50:25 +01:00
tc
tee
tee: optee: fix possible memory leak in optee_register_device()
2022-12-08 11:22:57 +01:00
thermal
thermal/drivers/hisi: Drop second sensor hi3660
2023-03-11 16:43:43 +01:00
thunderbolt
thunderbolt: Use the actual buffer in tb_async_error()
2022-09-15 12:04:52 +02:00
tty
treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
2023-03-11 16:43:42 +01:00
uio
uio: uio_dmem_genirq: Fix deadlock between irq config and handling
2023-01-18 11:41:22 +01:00
usb
treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
2023-03-11 16:43:42 +01:00
vfio
vfio: platform: Do not pass return buffer to ACPI _RST method
2023-01-18 11:41:22 +01:00
vhost
vhost: fix range used in translate_desc()
2023-01-18 11:41:57 +01:00
video
fbdev: smscufx: fix error handling code in ufx_usb_probe
2023-02-22 12:50:29 +01:00
virt
virtio
visorbus
vlynq
vme
vme: Fix error not catched in fake_init()
2023-01-18 11:41:26 +01:00
w1
w1: fix WARNING after calling w1_process()
2023-02-06 07:52:40 +01:00
watchdog
watchdog: diag288_wdt: fix __diag288() inline assembly
2023-02-22 12:50:27 +01:00
xen
fix "direction" argument of iov_iter_kvec()
2023-02-22 12:50:23 +01:00
zorro
Kconfig
Makefile