From: xiao jin <jin.xiao@xxxxxxxxx>
After start of fe and be, fe might go to close without triggering
STOP, and substream->runtime is freed. However, be is still at
START state and its substream->runtime still points to the
freed runtime.
Later on, FE is opened/started again, and triggers STOP.
snd_pcm_do_stop => dpcm_fe_dai_trigger
=> dpcm_fe_dai_do_trigger
=> dpcm_be_dai_trigger
=> dpcm_do_trigger
=> soc_pcm_trigger
=> skl_platform_pcm_trigger
skl_platform_pcm_trigger accesses the freed old runtime data and
kernel panic.
The patch fixes it by assigning be_substream->runtime in
dpcm_be_dai_startup when be's state is START.
Signed-off-by: xiao jin <jin.xiao@xxxxxxxxx>
Signed-off-by: Zhang Yanmin <yanmin.zhang@xxxxxxxxx>
Signed-off-by: Eugeniu Rosca <erosca@xxxxxxxxxxxxxx>