aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-01-13 10:53:20 +0100
committerBen Hutchings <ben@decadent.org.uk>2015-03-06 00:39:17 +0000
commit5c8edb8faee3068348fa040c22568f132e3643fa (patch)
treeb09b31a6ac23855af24cfdb9fd8d8b5e80d9438d /lib
parentc024ef952a111ac8963bfc4edbec6e7a75fffd61 (diff)
downloadkernel_samsung_smdk4412-5c8edb8faee3068348fa040c22568f132e3643fa.zip
kernel_samsung_smdk4412-5c8edb8faee3068348fa040c22568f132e3643fa.tar.gz
kernel_samsung_smdk4412-5c8edb8faee3068348fa040c22568f132e3643fa.tar.bz2
ALSA: ak411x: Fix stall in work callback
commit 4161b4505f1690358ac0a9ee59845a7887336b21 upstream. When ak4114 work calls its callback and the callback invokes ak4114_reinit(), it stalls due to flush_delayed_work(). For avoiding this, control the reentrance by introducing a refcount. Also flush_delayed_work() is replaced with cancel_delayed_work_sync(). The exactly same bug is present in ak4113.c and fixed as well. Reported-by: Pavel Hofman <pavel.hofman@ivitera.com> Acked-by: Jaroslav Kysela <perex@perex.cz> Tested-by: Pavel Hofman <pavel.hofman@ivitera.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> [bwh: Backported to 3.2: snd_ak411{3,4}_reinit were previously using flush_delayed_work_sync() rather than flush_delayed_work()] Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions