linux-stable/drivers/soundwire
Pierre-Louis Bossart d72afec087 soundwire: intel: fix potential race condition during power down
[ Upstream commit ea6942dad4 ]

The power down sequence sets the link_up flag as false outside of the
mutex_lock. This is potentially unsafe.

In additional the flow in that sequence can be improved by first
testing if the link was powered, setting the link_up flag as false and
proceeding with the power down. In case the CPA bits cannot be
cleared, we only flag an error since we cannot deal with interrupts
any longer.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210818024954.16873-2-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-18 13:40:31 +02:00
..
bus.c soundwire: bus: Fix device found flag correctly 2021-05-14 09:50:13 +02:00
bus.h soundwire: bus: add enumerated Slave device to device list 2020-09-28 11:17:40 +05:30
bus_type.c soundwire: bus: add enumerated Slave device to device list 2020-09-28 11:17:40 +05:30
cadence_master.c soundwire: cadence: only prepare attached devices on clock stop 2021-05-11 14:47:19 +02:00
cadence_master.h soundwire: cadence: fix race condition between suspend and Slave device alerts 2020-09-09 13:14:42 +05:30
debugfs.c soundwire: debugfs: clarify SDPX license with GPL-2.0-only 2020-05-05 08:51:44 +05:30
generic_bandwidth_allocation.c soundwire: remove an unnecessary NULL check 2020-09-23 15:34:48 +05:30
intel.c soundwire: intel: fix potential race condition during power down 2021-09-18 13:40:31 +02:00
intel.h soundwire: intel: pass link_mask information to each master 2020-09-03 16:14:39 +05:30
intel_init.c soundwire: intel: fix possible crash when no device is detected 2021-03-04 11:38:22 +01:00
Kconfig soundwire: Add generic bandwidth allocation algorithm 2020-09-18 17:48:51 +05:30
Makefile soundwire: Add generic bandwidth allocation algorithm 2020-09-18 17:48:51 +05:30
master.c soundwire: master: use pm_runtime_set_active() on add 2020-12-30 11:53:28 +01:00
mipi_disco.c soundwire: fix port_ready[] dynamic allocation in mipi_disco 2020-09-03 16:02:29 +05:30
qcom.c soundwire: qcom: Fix build failure when slimbus is module 2020-12-30 11:53:22 +01:00
slave.c soundwire: sysfs: add slave status and device number before probe 2020-09-28 11:17:43 +05:30
stream.c soundwire: stream: Fix test for DP prepare complete 2021-07-14 16:56:47 +02:00
sysfs_local.h soundwire: sysfs: add slave status and device number before probe 2020-09-28 11:17:43 +05:30
sysfs_slave.c soundwire: sysfs: add slave status and device number before probe 2020-09-28 11:17:43 +05:30
sysfs_slave_dpn.c soundwire: Fix DEBUG_LOCKS_WARN_ON for uninitialized attribute 2020-12-30 11:53:20 +01:00