forked from Minki/linux
d7a181da2d
snd_hdac_display_power() doesn't handle the concurrent calls carefully enough, and it may lead to the doubly get_power or put_power calls, when a runtime PM and an async work get called in racy way. This patch addresses it by reusing the bus->lock mutex that has been used for protecting the link state change in ext bus code, so that it can protect against racy display state changes. The initialization of bus->lock was moved from snd_hdac_ext_bus_init() to snd_hdac_bus_init() as well accordingly. Testcase: igt/i915_pm_rpm/module-reload #glk-dsi Reported-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Imre Deak <imre.deak@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> |
||
---|---|---|
.. | ||
ext | ||
array.c | ||
hda_bus_type.c | ||
hdac_bus.c | ||
hdac_component.c | ||
hdac_controller.c | ||
hdac_device.c | ||
hdac_i915.c | ||
hdac_regmap.c | ||
hdac_stream.c | ||
hdac_sysfs.c | ||
hdmi_chmap.c | ||
Kconfig | ||
local.h | ||
Makefile | ||
trace.c | ||
trace.h |