linux/sound/firewire/bebob
Takashi Sakamoto 493626f2d8 ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
When executing 'fw_run_transaction()' with 'TCODE_WRITE_BLOCK_REQUEST',
an address of 'payload' argument is used for streaming DMA mapping by
'firewire_ohci' module if 'size' argument is larger than 8 byte.
Although in this case the address should not be on kernel stack, current
implementation of ALSA bebob driver uses data in kernel stack for a cue
to boot M-Audio devices. This often brings unexpected result, especially
for a case of CONFIG_VMAP_STACK=y.

This commit fixes the bug.

Reference: https://bugzilla.kernel.org/show_bug.cgi?id=201021
Reference: https://forum.manjaro.org/t/firewire-m-audio-410-driver-wont-load-firmware/51165
Fixes: a2b2a7798fb6('ALSA: bebob: Send a cue to load firmware for M-Audio Firewire series')
Cc: <stable@vger.kernel.org> # v3.16+
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-09-10 09:07:29 +02:00
..
bebob.c ALSA: bebob: compare whole string for model name so that readers are not confused 2016-11-18 09:22:47 +01:00
bebob.h ALSA: firewire: add const qualifier to identifiers for read-only symbols 2017-08-22 16:08:00 +02:00
bebob_command.c ALSA: firewire-lib/bebob/oxfw: improve response evaluation for AV/C commands 2017-04-05 21:37:23 +02:00
bebob_focusrite.c ALSA: firewire: add const qualifier to identifiers for read-only symbols 2017-08-22 16:08:00 +02:00
bebob_hwdep.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
bebob_maudio.c ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping 2018-09-10 09:07:29 +02:00
bebob_midi.c ALSA: firewire: Constify snd_rawmidi_ops 2017-01-12 12:50:38 +01:00
bebob_pcm.c ALSA: pcm: Nuke snd_pcm_lib_mmap_vmalloc() 2018-07-18 08:24:29 +02:00
bebob_proc.c sound: Use octal not symbolic permissions 2018-05-28 11:27:20 +02:00
bebob_stream.c ALSA: firewire-lib: enable the same feature as CIP_SKIP_INIT_DBC_CHECK flag 2016-05-10 17:04:01 +02:00
bebob_terratec.c ALSA: firewire: add const qualifier to identifiers for read-only symbols 2017-08-22 16:08:00 +02:00
bebob_yamaha_terratec.c ALSA: firewire: add const qualifier to identifiers for read-only symbols 2017-08-22 16:08:00 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00