android_kernel_oneplus_msm8998/sound
Takashi Iwai b64129350f ALSA: seq: Clear client entry before deleting else at closing
commit a2ff19f7b70118ced291a28d5313469914de451b upstream.

When releasing a client, we need to clear the clienttab[] entry at
first, then call snd_seq_queue_client_leave().  Otherwise, the
in-flight cell in the queue might be picked up by the timer interrupt
via snd_seq_check_queue() before calling snd_seq_queue_client_leave(),
and it's delivered to another queue while the client is clearing
queues.  This may eventually result in an uncleared cell remaining in
a queue, and the later snd_seq_pool_delete() may need to wait for a
long time until the event gets really processed.

By moving the clienttab[] clearance at the beginning of release, any
event delivery of a cell belonging to this client will fail at a later
point, since snd_seq_client_ptr() returns NULL.  Thus the cell that
was picked up by the timer interrupt will be returned immediately
without further delivery, and the long stall of snd_seq_delete_pool()
can be avoided, too.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-03-22 09:23:31 +01:00
..
aoa ALSA: aoa-soundbus: Switch to dev_pm_ops 2015-08-05 16:47:47 +02:00
arm ASoC: pxa: pxa-pcm-lib: switch over to snd-soc-dmaengine-pcm 2015-09-30 23:21:16 +01:00
atmel ALSA: sound/atmel/ac97c.c: remove unused variable 2015-05-20 06:18:25 +02:00
core ALSA: seq: Clear client entry before deleting else at closing 2018-03-22 09:23:31 +01:00
drivers ALSA: aloop: Fix racy hw constraints adjustment 2018-01-17 09:35:26 +01:00
firewire ALSA: firewire-digi00x: handle all MIDI messages on streaming packets 2018-03-22 09:23:24 +01:00
hda ALSA: hda: Drop useless WARN_ON() 2018-01-02 20:33:22 +01:00
i2c ALSA: ak4xxx-adda: Drop unnecessary ifdef CONFIG_PROC_FS 2015-05-29 07:51:23 +02:00
isa ALSA: msnd: Optimize / harden DSP and MIDI loops 2017-09-13 14:09:46 -07:00
mips ALSA: mips: let SND_SGI_O2 select SND_PCM 2015-06-15 13:21:58 +02:00
oss sound: oss/sb_audio: use swap() in sb_audio_close() 2015-06-12 20:46:29 +02:00
parisc
pci ALSA: hda - Revert power_save option default value 2018-03-22 09:23:31 +01:00
pcmcia ALSA: vx: Fix possible transfer overflow 2017-11-21 09:21:20 +01:00
ppc ALSA: ppc/awacs: shut up maybe-uninitialized warning 2017-05-08 07:46:01 +02:00
sh
soc ASoC: nuc900: Fix a loop timeout test 2018-03-22 09:23:29 +01:00
sparc ALSA: Add missing dependency on CONFIG_SND_TIMER 2016-02-17 12:30:58 -08:00
spi
synth ALSA: synth: Fix conflicting OSS device registration on AWE32 2015-10-05 16:55:09 +02:00
usb ALSA: usb-audio: Add a quirck for B&W PX headphones 2018-03-11 16:19:44 +01:00
ac97_bus.c ASoC: Updates for v4.3 2015-08-31 16:25:22 +02:00
Kconfig ALSA: hda - Make snd_hda_bus_type public 2015-03-23 13:15:51 +01:00
last.c
Makefile ALSA: hda - Make snd_hda_bus_type public 2015-03-23 13:15:51 +01:00
sound_core.c sound: fix check for error condition of register_chrdev() 2015-11-07 11:14:30 +01:00
sound_firmware.c sound: sound_firmware: Fix invalid use of vfs_read() 2015-05-26 13:48:58 +02:00