alistair23-linux/sound
Takashi Iwai f7debfe540 ALSA: seq: virmidi: Offload the output event processing
The virmidi sequencer stuff tries to translate the rawmidi bytes to
sequencer events and deliver the packets at trigger callback.  The
amount of the whole process of these translations and deliveries
depends on the incoming rawmidi bytes, and we have no limit for that;
this was the cause of a CPU soft lockup that had been reported and
fixed recently.

Although we've fixed the soft lockup by putting the temporary unlock
and cond_resched(), it's rather a quick band aid.  In this patch,
meanwhile, the event parsing and delivery process is offloaded to a
dedicated work, and the trigger callback just kicks it off.  It has
three merits, at least:

- The processing is always done in a sleepable context, which can
  assure the event delivery with non-atomic flag without hackish
  is_atomic() usage.

- Other relevant codes can be simplified, reducing the lines

- It makes me happier

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-07-30 14:51:51 +02:00
..
ac97 ALSA: ac97: add codecs devicetree binding 2018-06-25 10:03:32 +02:00
aoa ALSA: snd-aoa: add of_node_put() in error path 2018-06-29 20:35:14 +02:00
arm
atmel
core ALSA: seq: virmidi: Offload the output event processing 2018-07-30 14:51:51 +02:00
drivers ALSA: opl3: Declare common variables properly 2018-07-26 08:31:48 +02:00
firewire ALSA: pcm: Nuke snd_pcm_lib_mmap_vmalloc() 2018-07-18 08:24:29 +02:00
hda ALSA: hda: Proper endian notations for BDL pointers 2018-07-27 09:06:01 +02:00
i2c
isa ALSA: sb: Proper endian notations 2018-07-27 09:06:14 +02:00
mips ALSA: pcm: Nuke snd_pcm_lib_mmap_vmalloc() 2018-07-18 08:24:29 +02:00
oss treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
parisc
pci Merge branch 'for-linus' into topic/virmidi 2018-07-29 22:39:29 +02:00
pcmcia Merge branch 'for-linus' into topic/virmidi 2018-07-29 22:39:29 +02:00
ppc
sh
soc Merge branch 'topic/drm_audio_component' into for-next 2018-07-19 20:48:14 +02:00
sparc sound: Use octal not symbolic permissions 2018-05-28 11:27:20 +02:00
spi
synth
usb ALSA: usb-audio: quirks: Replace mdelay() with msleep() and usleep_range() 2018-07-27 11:48:07 +02:00
x86 ALSA: intel_hdmi: Use strlcpy() instead of strncpy() 2018-06-27 18:11:32 +02:00
xen ALSA: xen: Use standard pcm_format_to_bits() for ALSA format bits 2018-07-27 09:05:34 +02:00
ac97_bus.c
Kconfig ALSA: xen-front: Introduce Xen para-virtualized sound frontend driver 2018-05-16 12:58:36 +02:00
last.c
Makefile ALSA: xen-front: Introduce Xen para-virtualized sound frontend driver 2018-05-16 12:58:36 +02:00
sound_core.c sound: Use octal not symbolic permissions 2018-05-28 11:27:20 +02:00