linux-stable/sound
Takashi Sakamoto 4c8099e9ca ALSA: control: use counting semaphore as write lock for TLV write/command operations
In ALSA control interface, applications can execute three types of request
for Type-Length-Value (TLV) data to a set of elements; read, write and
command. In ALSA control core, all of the requests are handled within read
lock to a counting semaphore, therefore several processes can run to access
to the data at the same time for any purposes. This has an issue because
write and command requests have side effect to change state of a set of
elements for the TLV data. Concurrent access should be controlled for each
of reference/change case.

This commit uses the counting semaphore as read lock for TLV read requests,
while use it as write lock for TLV write/command requests. The state of a
set of elements for the TLV data is maintained exclusively between read
requests and write/command requests, or between write and command requests.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-08-04 16:50:55 +02:00
..
aoa ALSA: declare snd_kcontrol_new structures as const 2017-05-30 10:29:25 +02:00
arm
atmel ALSA: atmel: ac97c: fix error return code in atmel_ac97c_probe() 2017-07-01 08:03:34 +02:00
core ALSA: control: use counting semaphore as write lock for TLV write/command operations 2017-08-04 16:50:55 +02:00
drivers ALSA: opl4: Move inline before return type 2017-07-06 09:24:17 +02:00
firewire Merge branch 'for-linus' into for-next 2017-06-20 07:53:07 +02:00
hda ALSA: hda: constify pci_device_id. 2017-07-18 20:01:21 +02:00
i2c ALSA: ak411x: Use array instead of offsetof() 2017-05-17 07:13:03 +02:00
isa Merge branch 'for-linus' into for-next 2017-08-04 16:50:18 +02:00
mips ALSA: hal2: switch to dma_alloc_attrs 2017-06-16 11:10:05 +02:00
oss Annotate hardware config module parameters in sound/oss/ 2017-04-20 12:02:32 +01:00
parisc ALSA: parisc: Constify hw_constraints 2017-06-09 10:42:48 +02:00
pci Merge branch 'for-linus' into for-next 2017-08-04 16:50:18 +02:00
pcmcia ALSA: declare snd_kcontrol_new structures as const 2017-05-30 10:29:25 +02:00
ppc ALSA: declare snd_kcontrol_new structures as const 2017-05-30 10:29:25 +02:00
sh ALSA: sh: Convert to the new PCM ops 2017-06-02 19:38:03 +02:00
soc Merge remote-tracking branches 'asoc/fix/rt5663', 'asoc/fix/rt5665', 'asoc/fix/samsung', 'asoc/fix/sgtl5000' and 'asoc/fix/sh' into asoc-linus 2017-08-01 15:17:11 +01:00
sparc ALSA: sparc: Constify hw_constraints 2017-06-09 10:42:56 +02:00
spi
synth ALSA: Fix forgotten dependency fix for tristate OSS sequencer kconfig 2017-06-28 08:45:07 +02:00
usb ALSA: line6: remove unnecessary initialization to PODHD500X 2017-06-20 07:51:22 +02:00
x86 main drm pull for v4.13 2017-07-09 18:48:37 -07:00
ac97_bus.c
Kconfig ALSA: synth: Select snd-emux-synth explicitly 2017-06-09 22:10:06 +02:00
last.c
Makefile ALSA: add Intel HDMI LPE audio driver for BYT/CHT-T 2017-01-25 14:23:46 +01:00
sound_core.c