ALSA: pcm: Allow aborting mutex lock at OSS read/write loops
authorTakashi Iwai <tiwai@suse.de>
Mon, 8 Jan 2018 13:03:53 +0000 (14:03 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Jan 2018 08:38:51 +0000 (09:38 +0100)
commitbee3f2d5c02aed452542fae2bb980f555dd887ad
tree2950f7017ed99ee7f5c6158db90f06b260b6a312
parent3a00564cb49f17e5ca2a1d6e34c7ea7b1113f49e
ALSA: pcm: Allow aborting mutex lock at OSS read/write loops

commit 900498a34a3ac9c611e9b425094c8106bdd7dc1c upstream.

PCM OSS read/write loops keep taking the mutex lock for the whole
read/write, and this might take very long when the exceptionally high
amount of data is given.  Also, since it invokes with mutex_lock(),
the concurrent read/write becomes unbreakable.

This patch tries to address these issues by replacing mutex_lock()
with mutex_lock_interruptible(), and also splits / re-takes the lock
at each read/write period chunk, so that it can switch the context
more finely if requested.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/core/oss/pcm_oss.c