linux_dsm_epyc7002/drivers/soundwire
Pierre-Louis Bossart 2140b66b5d soundwire: bus: fix race condition with probe_complete signaling
The driver probe takes care of basic initialization and is invoked
when a Slave becomes attached, after a match between the Slave DevID
registers and ACPI/DT entries.

The update_status callback is invoked when a Slave state changes,
e.g. when it is assigned a non-zero Device Number and it reports with
an ATTACHED/ALERT state.

The state change detection is usually hardware-based and based on the
SoundWire frame rate (e.g. double-digit microseconds) while the probe
is a pure software operation, which may involve a kernel module
load. In corner cases, it's possible that the state changes before the
probe completes.

This patch suggests the use of wait_for_completion to avoid races on
startup, so that the update_status callback does not rely on invalid
pointers/data structures.

Signed-off-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200115000844.14695-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-02-25 15:57:01 +05:30
..
bus_type.c soundwire: bus: fix race condition with probe_complete signaling 2020-02-25 15:57:01 +05:30
bus.c soundwire: bus: fix race condition with probe_complete signaling 2020-02-25 15:57:01 +05:30
bus.h soundwire: bus: fix race condition with probe_complete signaling 2020-02-25 15:57:01 +05:30
cadence_master.c soundwire: cadence: fix kernel-doc parameter descriptions 2020-01-16 17:34:38 +05:30
cadence_master.h soundwire: cadence_master: make clock stop exit configurable on init 2019-10-24 17:22:01 +05:30
debugfs.c soundwire: add debugfs support 2019-08-23 12:01:02 +05:30
intel_init.c soundwire: intel: update stream callbacks for hwparams/free stream operations 2019-12-12 09:17:06 +05:30
intel.c soundwire: intel: free all resources on hw_free() 2020-02-18 14:09:52 +05:30
intel.h soundwire: intel: update stream callbacks for hwparams/free stream operations 2019-12-12 09:17:06 +05:30
Kconfig soundwire: qcom: add support for SoundWire controller 2020-01-14 11:57:47 +05:30
Makefile soundwire: qcom: add support for SoundWire controller 2020-01-14 11:57:47 +05:30
mipi_disco.c soundwire: mipi_disco: Switch to use fwnode_property_count_uXX() 2019-08-02 17:15:13 +05:30
qcom.c soundwire: qcom: add support for SoundWire controller 2020-01-14 11:57:47 +05:30
slave.c soundwire: bus: fix race condition with probe_complete signaling 2020-02-25 15:57:01 +05:30
stream.c soundwire: stream: don't program ports when a stream that has not been prepared 2020-02-13 15:57:37 +05:30