ASoC: Intel: Fix race condition in IPC rx list
authorGustaw Lewandowski <gustaw.lewandowski@intel.com>
Thu, 13 Jun 2019 19:04:33 +0000 (21:04 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 25 Jun 2019 14:33:43 +0000 (15:33 +0100)
commit26ae20490809db30677dfd54f81a73ce77ba2df1
tree8548945ce79e174debdbccfb936a89889493a443
parent078759399ff74e2e6f5e208c61924d1b7d66e5d8
ASoC: Intel: Fix race condition in IPC rx list

Since there are multiple IPCs being sent in a short span of time, there
is a possibility of more than one message being on the Rx list after
receiving response from firmware. In such cases, when the first
notification of interrupt from firmware is received, driver retrieves
the message from the Rx list but does not delete it from the list till
the next lock. In the meantime, when another interrupt is received from
the firmware, driver is reading the previous message again since the
previous message has not been removed from the list.

Signed-off-by: Gustaw Lewandowski <gustaw.lewandowski@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/skl-sst-ipc.c