diff options
author | Arnaud Pouliquen <arnaud.pouliquen@st.com> | 2017-03-28 15:04:55 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-04-06 19:29:07 +0100 |
commit | d05d862ead8eca5e7d4ccf82d39d9189579ee5b1 (patch) | |
tree | df3ed6ade1621328947ef5f94e3d553aa73b9d58 /drivers | |
parent | 3c9d3f1bc2defd418b5933bbc928096c9c686d3b (diff) |
ASoC: STI: Fix null ptr deference in IRQ handler
With RTlinux a race condition has been found that leads to NULL ptr crash:
- On CPU 0: uni_player_irq_handler is called to treat XRUN
"(player->state == UNIPERIF_STATE_STOPPED)" is FALSE so status is checked,
dev_err(player->dev, "FIFO underflow error detected") is printed
and then snd_pcm_stream_lock should be called to lock stream for stopping.
- On CPU 1: application stop and close the stream.
Issue is that the stop and shutdown functions are executed while
"FIFO underflow error detected" is printed.
So when CPU 0 calls snd_pcm_stream_lock, player->substream is already null.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers')
0 files changed, 0 insertions, 0 deletions