android_kernel_oneplus_msm8998/sound/firewire
Takashi Sakamoto 1da7fa6383 ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
commit 493626f2d87a74e6dbea1686499ed6e7e600484e upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-29 03:08:51 -07:00
..
bebob ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping 2018-09-29 03:08:51 -07:00
dice ALSA: dice: fix detection of Loud devices 2015-11-14 17:50:57 +01:00
digi00x ALSA: firewire-digi00x: handle all MIDI messages on streaming packets 2018-03-22 09:23:24 +01:00
fireworks ALSA: fireworks: accessing to user space outside spinlock 2016-09-15 08:27:53 +02:00
oxfw ALSA: oxfw: add an entry for TASCAM FireOne 2015-10-19 12:01:22 +02:00
tascam ALSA: firewire-tascam: Fix to handle error from initialization of stream data 2017-01-15 13:41:36 +01: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.c ALSA: firewire-lib: continue packet processing at detecting wrong CIP headers 2015-10-11 18:14:01 +02:00
amdtp-stream.h ALSA: firewire-lib: complete AM824 data block processing layer 2015-09-29 12:51:20 +02:00
cmp.c ALSA: firewire-lib: fix kerneldoc errors 2014-11-18 18:10:23 +01:00
cmp.h ALSA: firewire-lib: Add a new function to check others' connection 2014-05-26 14:22:46 +02:00
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 ALSA: firewire-lib: Add some AV/C general commands 2014-05-26 14:23:13 +02:00
isight.c ALSA: pcm: Add snd_pcm_stop_xrun() helper 2014-11-09 18:20:40 +01:00
iso-resources.c ALSA: firewire-lib: leave unit reference counting completely 2015-03-10 15:27:19 +01:00
iso-resources.h firewire: octlet AT payloads can be stack-allocated 2011-05-10 22:53:44 +02:00
Kconfig ALSA: oxfw: add an comment to Kconfig for TASCAM FireOne 2015-11-08 09:04:36 +01:00
lib.c ALSA: firewire-lib: avoid NULL pointer dereference after closing MIDI port 2015-10-19 11:58:21 +02:00
lib.h ALSA: firewire-lib: fix inappropriate assignment between signed/unsigned type 2017-05-02 21:19:55 -07:00
Makefile ALSA: oxfw: remove a meaningless entry from firewire Makefile 2015-10-18 09:10:11 +02:00
packets-buffer.c sound: Add export.h for THIS_MODULE/EXPORT_SYMBOL where needed 2011-10-31 19:31:22 -04:00
packets-buffer.h ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
scs1x.c ALSA: firewire: Convert to snd_card_new() with a device pointer 2014-02-14 08:13:31 +01:00