ALSA: firewire-tascam: accessing to user space outside spinlock
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 31 Aug 2016 11:15:32 +0000 (20:15 +0900)
committerTakashi Iwai <tiwai@suse.de>
Wed, 31 Aug 2016 12:24:37 +0000 (14:24 +0200)
commit04b2d9c9c319277ad4fbbb71855c256a9f4d5f98
tree5a968daed890703b4ded3f41580228c190d1f2ad
parentfd06c77eb9200b53d421da5fffe0dcd894b5d72a
ALSA: firewire-tascam: accessing to user space outside spinlock

In hwdep interface of firewire-tascam driver, accessing to user space is
in a critical section with disabled local interrupt. Depending on
architecture, accessing to user space can cause page fault exception. Then
local processor stores machine status and handle the synchronous event. A
handler corresponding to the event can call task scheduler to wait for
preparing pages. In a case of usage of single core processor, the state to
disable local interrupt is worse because it doesn't handle usual interrupts
from hardware.

This commit fixes this bug, by performing the accessing outside spinlock.

Reported-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Cc: stable@vger.kernel.org
Fixes: e5e0c3dd257b('ALSA: firewire-tascam: add hwdep interface')
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/tascam/tascam-hwdep.c