android_kernel_oneplus_msm8998/sound/pci
Takashi Iwai c9125a2116 ALSA: hda - Fix cancel_work_sync() stall from jackpoll work
commit 16037643969e095509cd8446a3f8e406a6dc3a2c upstream.

On AMD/ATI controllers, the HD-audio controller driver allows a bus
reset upon the error recovery, and its procedure includes the
cancellation of pending jack polling work as found in
snd_hda_bus_codec_reset().  This works usually fine, but it becomes a
problem when the reset happens from the jack poll work itself; then
calling cancel_work_sync() from the work being processed tries to wait
the finish endlessly.

As a workaround, this patch adds the check of current_work() and
applies the cancel_work_sync() only when it's not from the
jackpoll_work.

This doesn't fix the root cause of the reported error below, but at
least, it eases the unexpected stall of the whole system.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=200937
Cc: <stable@vger.kernel.org>
Cc: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-19 22:48:55 +02:00
..
ac97
ali5451
asihpi ALSA: asihpi: Hardening for potential Spectre v1 2018-05-02 07:53:41 -07:00
au88x0
aw2
ca0106
cs46xx
cs5535audio ALSA: cs5535audio: Fix invalid endian conversion 2018-08-22 07:48:36 +02:00
ctxfi
echoaudio
emu10k1 ALSA: emu10k1: Rate-limit error messages about page errors 2018-08-06 16:24:35 +02:00
hda ALSA: hda - Fix cancel_work_sync() stall from jackpoll work 2018-09-19 22:48:55 +02:00
ice1712
korg1212
lola
lx6464es
mixart
nm256
oxygen
pcxhr
riptide
rme9652 ALSA: rme9652: Hardening for potential Spectre v1 2018-05-02 07:53:41 -07:00
trident
vx222 ALSA: vx222: Fix invalid endian conversions 2018-08-22 07:48:36 +02:00
ymfpci
ad1889.c
ad1889.h
ak4531_codec.c
als300.c
als4000.c
atiixp.c
atiixp_modem.c
azt3328.c
azt3328.h
bt87x.c
cmipci.c
cs4281.c
cs5530.c
ens1370.c
ens1371.c
es1938.c
es1968.c
fm801.c ALSA: fm801: add error handling for snd_ctl_add 2018-08-06 16:24:30 +02:00
intel8x0.c
intel8x0m.c
Kconfig
maestro3.c
Makefile
rme32.c
rme96.c
sis7019.c
sis7019.h
sonicvibes.c
via82xx.c
via82xx_modem.c