linux/sound
Takashi Iwai 925ca893b4 ALSA: memalloc: Add fallback SG-buffer allocations for x86
The recent change for memory allocator replaced the SG-buffer handling
helper for x86 with the standard non-contiguous page handler.  This
works for most cases, but there is a corner case I obviously
overlooked, namely, the fallback of non-contiguous handler without
IOMMU.  When the system runs without IOMMU, the core handler tries to
use the continuous pages with a single SGL entry.  It works nicely for
most cases, but when the system memory gets fragmented, the large
allocation may fail frequently.

Ideally the non-contig handler could deal with the proper SG pages,
it's cumbersome to extend for now.  As a workaround, here we add new
types for (minimalistic) SG allocations, instead, so that the
allocator falls back to those types automatically when the allocation
with the standard API failed.

BTW, one better (but pretty minor) improvement from the previous
SG-buffer code is that this provides the proper mmap support without
the PCM's page fault handling.

Fixes: 2c95b92ecd ("ALSA: memalloc: Unify x86 SG-buffer handling (take#3)")
BugLink: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2272
BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1198248
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220413054808.7547-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2022-04-13 07:48:53 +02:00
..
ac97
aoa Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
arm
atmel
core ALSA: memalloc: Add fallback SG-buffer allocations for x86 2022-04-13 07:48:53 +02:00
drivers ALSA: mtpav: Don't call card private_free at probe error path 2022-04-12 17:58:43 +02:00
firewire ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction 2022-03-04 17:23:21 +01:00
hda ALSA: hda: intel-dsp-config: update AlderLake PCI IDs 2022-04-07 10:29:31 +02:00
i2c
isa ALSA: sc6000: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:17 +02:00
mips ALSA: mips: Use platform_get_irq() to get the interrupt 2022-02-28 16:59:01 +01:00
oss sound/oss/dmasound: fix build when drivers are mixed =y/=m 2022-04-07 10:28:48 +02:00
parisc parisc architecture updates for kernel 5.15: 2021-09-02 13:16:00 -07:00
pci ALSA: nm256: Don't call card private_free at probe error path 2022-04-12 17:58:44 +02:00
pcmcia
ppc ALSA: ppc: beep: fix clang -Wimplicit-fallthrough 2021-12-07 15:36:56 +01:00
sh
soc ASoC: Fixes for v5.18 2022-03-30 14:04:22 +02:00
sparc ALSA: sparc: no need to initialise statics to 0 2021-12-12 10:01:04 +01:00
spi ALSA: spi: Add check for clk_enable() 2022-02-28 17:00:10 +01:00
synth ALSA: synth: missing check for possible NULL after the call to kstrdup 2021-11-09 07:18:50 +01:00
usb ALSA: usb-audio: Increase max buffer size 2022-04-08 14:30:25 +02:00
virtio virtio: wrap config->reset calls 2022-01-14 18:50:52 -05:00
x86 ALSA: intel_hdmi: Fix the missing snd_card_free() call at probe error 2022-04-12 17:58:35 +02:00
xen xen: flag xen_snd_front to be not essential for system boot 2021-11-23 13:43:54 -06:00
ac97_bus.c
Kconfig
last.c
Makefile
sound_core.c sound: core: Remove redundant variable and return the last statement 2022-02-28 17:57:14 +01:00