linux/drivers/soc/qcom
Evan Green fc3e62e25c soc: qcom: smp2p: Safely acquire spinlock without IRQs
smp2p_update_bits() should disable interrupts when it acquires its
spinlock. This is important because without the _irqsave, a priority
inversion can occur.

This function is called both with interrupts enabled in
qcom_q6v5_request_stop(), and with interrupts disabled in
ipa_smp2p_panic_notifier(). IRQ handling of spinlocks should be
consistent to avoid the panic notifier deadlocking because it's
sitting on the thread that's already got the lock via _request_stop().

Found via lockdep.

Cc: stable@vger.kernel.org
Fixes: 50e9964141 ("soc: qcom: smp2p: Qualcomm Shared Memory Point to Point")
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Evan Green <evgreen@chromium.org>
Link: https://lore.kernel.org/r/20200929133040.RESEND.1.Ideabf6dcdfc577cf39ce3d95b0e4aa1ac8b38f0c@changeid
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2020-10-26 09:52:11 -05:00
..
apr.c soc: qcom: apr: Fixup the error displayed on lookup failure 2020-09-15 16:12:59 +00:00
cmd-db.c soc: qcom: cmd-db: Properly endian swap the slv_id for debugfs 2020-04-19 23:06:29 -07:00
cpr.c PM: AVS: qcom-cpr: Move the driver to the qcom specific drivers 2020-10-22 18:38:21 +02:00
Kconfig PM: AVS: qcom-cpr: Move the driver to the qcom specific drivers 2020-10-22 18:38:21 +02:00
kryo-l2-accessors.c soc: qcom: Separate kryo l2 accessors from PMU driver 2020-07-10 17:08:55 -07:00
llcc-qcom.c soc: qcom: llcc: use devm_platform_ioremap_resource_byname() 2020-09-17 04:24:49 +00:00
Makefile PM: AVS: qcom-cpr: Move the driver to the qcom specific drivers 2020-10-22 18:38:21 +02:00
mdt_loader.c remoteproc updates for v5.3 2019-07-17 11:44:41 -07:00
ocmem.c soc: qcom: add OCMEM driver 2019-10-07 08:17:33 -07:00
pdr_interface.c Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-08-07 21:14:30 -07:00
pdr_internal.h soc: qcom: pdr: Fixup array type of get_domain_list_resp message 2020-09-14 23:53:29 +00:00
qcom_aoss.c soc: qcom: aoss: Add SM8250 compatible 2020-05-11 17:17:23 -07:00
qcom_gsbi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 409 2019-06-05 17:37:14 +02:00
qcom-geni-se.c soc: qcom: geni: Fix unused label warning 2020-07-29 22:10:30 -07:00
qmi_encdec.c soc: qcom: Introduce QMI encoder/decoder 2017-12-20 15:38:34 -06:00
qmi_interface.c soc: qcom: qmi: Return EPROBE_DEFER if no address family 2019-12-10 22:44:34 -08:00
rmtfs_mem.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
rpmh-internal.h soc: qcom: rpmh-rsc: Sleep waiting for tcs slots to be free 2020-09-10 16:56:12 +00:00
rpmh-rsc.c soc: qcom: rpmh-rsc: Sleep waiting for tcs slots to be free 2020-09-10 16:56:12 +00:00
rpmh.c soc: qcom: rpmh: Update rpmh_invalidate function to return void 2020-06-22 14:23:46 -07:00
rpmhpd.c soc: qcom: rpmhpd: Add SM8250 power domains 2020-04-20 23:31:48 -07:00
rpmpd.c soc: qcom: rpmpd: Allow RPMPD driver to be loaded as a module 2020-04-14 15:39:56 -07:00
smd-rpm.c soc: qcom: smd-rpm: Fix kerneldoc 2020-07-29 13:39:43 -07:00
smem_state.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
smem.c soc: qcom: smem: Update max processor count 2019-08-21 15:58:01 -07:00
smp2p.c soc: qcom: smp2p: Safely acquire spinlock without IRQs 2020-10-26 09:52:11 -05:00
smsm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
socinfo.c ARM: SoC-related driver updates 2020-10-24 10:39:22 -07:00
trace-rpmh.h drivers: qcom: rpmh-rsc: log RPMH requests in FTRACE 2018-07-21 13:32:31 -05:00
wcnss_ctrl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00