linux/sound/firewire
Takashi Sakamoto 6b1ca4bcad ALSA: fireworks: accessing to user space outside spinlock
In hwdep interface of fireworks 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 handles 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 don't handle usual interrupts
from hardware.

This commit fixes this bug, performing the accessing outside spinlock. This
commit also gives up counting the number of queued response messages to
simplify ring-buffer management.

Reported-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Cc: stable@vger.kernel.org
Fixes: 555e8a8f7f14('ALSA: fireworks: Add command/response functionality into hwdep interface')
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-08-31 16:17:15 +02:00
..
bebob ALSA: firewire-lib: enable the same feature as CIP_SKIP_INIT_DBC_CHECK flag 2016-05-10 17:04:01 +02:00
dice ALSA: dice: add support for M-Audio Profire 610 and perhaps 2626 2016-05-08 11:17:37 +02:00
digi00x ALSA: firewire-lib: enable the same feature as CIP_SKIP_INIT_DBC_CHECK flag 2016-05-10 17:04:01 +02:00
fireworks ALSA: fireworks: accessing to user space outside spinlock 2016-08-31 16:17:15 +02:00
oxfw ALSA: firewire-lib: enable the same feature as CIP_SKIP_INIT_DBC_CHECK flag 2016-05-10 17:04:01 +02:00
tascam ALSA: firewire-tascam: accessing to user space outside spinlock 2016-08-31 14:24:37 +02:00
amdtp-am824.c ALSA: firewire-lib: process_rx_data_blocks() can be static 2015-09-29 16:52:52 +02:00
amdtp-am824.h ALSA: firewire-lib: complete AM824 data block processing layer 2015-09-29 12:51:20 +02:00
amdtp-stream-trace.h ALSA: firewire-lib: change a member of event structure to suppress sparse wanings to bool type 2016-05-18 16:32:09 +02:00
amdtp-stream.c ALSA: firewire-lib: drop skip argument from helper functions to queue a packet 2016-05-11 20:36:28 +02:00
amdtp-stream.h ALSA: firewire-lib: permit to flush queued packets only in process context for better PCM period granularity 2016-05-11 20:34:53 +02:00
cmp.c
cmp.h
fcp.c ALSA: firewire-lib: rename 'amdtp' to 'amdtp-stream' to prepare for functional separation 2015-09-29 12:47:11 +02:00
fcp.h
isight.c
iso-resources.c ALSA: firewire-lib: leave unit reference counting completely 2015-03-10 15:27:19 +01:00
iso-resources.h
Kconfig ALSA: firewire-tascam: add Kconfig entry for TASCAM FW-1804 2016-03-28 09:39:41 +02:00
lib.c ALSA: firewire-lib: add new function to schedule a work for sound card registration 2016-03-31 15:36:18 +02:00
lib.h ALSA: firewire-lib: add new function to schedule a work for sound card registration 2016-03-31 15:36:18 +02:00
Makefile ALSA: firewire-lib: add tracepoints to dump a part of isochronous packet data 2016-05-09 15:18:25 +02:00
packets-buffer.c
packets-buffer.h