1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-02-05 20:46:11 +01:00
slackware-current/source/l/alsa-lib/ddfc32abf5697de1618b9e7ffdf57a0f97013090.patch
Patrick J Volkerding bd0fcc79d4 Wed Jun 9 18:59:30 UTC 2021
a/dialog-1.3_20210530-x86_64-1.txz:  Upgraded.
a/grub-2.06-x86_64-1.txz:  Upgraded.
a/kernel-firmware-20210609_0f66b74-noarch-1.txz:  Upgraded.
d/gcc-10.3.0-x86_64-2.txz:  Rebuilt.
  Applied upstream patches to address the regressions noted in PR100101 and
  PR100102. Thanks to eduardr.
d/gcc-brig-10.3.0-x86_64-2.txz:  Rebuilt.
d/gcc-g++-10.3.0-x86_64-2.txz:  Rebuilt.
d/gcc-gdc-10.3.0-x86_64-2.txz:  Rebuilt.
d/gcc-gfortran-10.3.0-x86_64-2.txz:  Rebuilt.
d/gcc-gnat-10.3.0-x86_64-2.txz:  Rebuilt.
d/gcc-go-10.3.0-x86_64-2.txz:  Rebuilt.
d/gcc-objc-10.3.0-x86_64-2.txz:  Rebuilt.
d/meson-0.58.1-x86_64-1.txz:  Upgraded.
kde/bluedevil-5.22.0-x86_64-1.txz:  Upgraded.
kde/breeze-5.22.0-x86_64-1.txz:  Upgraded.
kde/breeze-grub-5.22.0-x86_64-1.txz:  Upgraded.
kde/breeze-gtk-5.22.0-x86_64-1.txz:  Upgraded.
kde/drkonqi-5.22.0-x86_64-1.txz:  Upgraded.
kde/kactivitymanagerd-5.22.0-x86_64-1.txz:  Upgraded.
kde/kde-cli-tools-5.22.0-x86_64-1.txz:  Upgraded.
kde/kde-gtk-config-5.22.0-x86_64-1.txz:  Upgraded.
kde/kdecoration-5.22.0-x86_64-1.txz:  Upgraded.
kde/kdeplasma-addons-5.22.0-x86_64-1.txz:  Upgraded.
kde/kgamma5-5.22.0-x86_64-1.txz:  Upgraded.
kde/khotkeys-5.22.0-x86_64-1.txz:  Upgraded.
kde/kinfocenter-5.22.0-x86_64-1.txz:  Upgraded.
kde/kmenuedit-5.22.0-x86_64-1.txz:  Upgraded.
kde/krita-4.4.5-x86_64-1.txz:  Upgraded.
kde/kscreen-5.22.0-x86_64-1.txz:  Upgraded.
kde/kscreenlocker-5.22.0-x86_64-1.txz:  Upgraded.
kde/ksshaskpass-5.22.0-x86_64-1.txz:  Upgraded.
kde/ksysguard-5.22.0-x86_64-1.txz:  Upgraded.
kde/ksystemstats-5.22.0-x86_64-1.txz:  Added.
kde/kwallet-pam-5.22.0-x86_64-1.txz:  Upgraded.
kde/kwayland-integration-5.22.0-x86_64-1.txz:  Upgraded.
kde/kwayland-server-5.22.0-x86_64-1.txz:  Upgraded.
kde/kwin-5.22.0-x86_64-1.txz:  Upgraded.
kde/kwrited-5.22.0-x86_64-1.txz:  Upgraded.
kde/latte-dock-0.9.12-x86_64-1.txz:  Upgraded.
kde/layer-shell-qt-5.22.0-x86_64-1.txz:  Added.
kde/libkscreen-5.22.0-x86_64-1.txz:  Upgraded.
kde/libksysguard-5.22.0-x86_64-1.txz:  Upgraded.
kde/milou-5.22.0-x86_64-1.txz:  Upgraded.
kde/oxygen-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-browser-integration-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-desktop-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-disks-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-firewall-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-integration-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-nm-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-pa-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-sdk-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-systemmonitor-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-vault-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-workspace-5.22.0-x86_64-1.txz:  Upgraded.
kde/plasma-workspace-wallpapers-5.22.0-x86_64-1.txz:  Upgraded.
kde/polkit-kde-agent-1-5.22.0-x86_64-1.txz:  Upgraded.
kde/powerdevil-5.22.0-x86_64-1.txz:  Upgraded.
kde/qqc2-breeze-style-5.22.0-x86_64-1.txz:  Upgraded.
kde/sddm-kcm-5.22.0-x86_64-1.txz:  Upgraded.
kde/systemsettings-5.22.0-x86_64-1.txz:  Upgraded.
kde/xdg-desktop-portal-kde-5.22.0-x86_64-1.txz:  Upgraded.
l/alsa-lib-1.2.5-x86_64-3.txz:  Rebuilt.
  Apply upstream patches to fix device detection. Thanks to USUARIONUEVO.
l/libiodbc-3.52.15-x86_64-1.txz:  Upgraded.
n/sshfs-3.7.2-x86_64-1.txz:  Upgraded.
n/wpa_supplicant-2.9-x86_64-7.txz:  Rebuilt.
  Support WPA3 and add some more options from the defconfig included in the
  source to Slackware's config file. Thanks to ArTourter.
x/xkeyboard-config-2.33-noarch-1.txz:  Upgraded.
x/xterm-368-x86_64-1.txz:  Upgraded.
xfce/xfce4-settings-4.16.2-x86_64-1.txz:  Upgraded.
2021-06-10 08:59:32 +02:00

94 lines
3 KiB
Diff

From ddfc32abf5697de1618b9e7ffdf57a0f97013090 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Wed, 2 Jun 2021 08:49:32 +0200
Subject: [PATCH] conf: fix load_for_all_cards()
The 63f7745b commit is loading the driver specific configuration
multiple times which ends with the array merges (see the bug).
Introduce the loaded compound which traces the already loaded
driver configurations and skip the multiple load requests.
Fixes: https://github.com/alsa-project/alsa-lib/issues/143
Fixes: 63f7745b ("conf: extend load_for_all_cards hook (id/value table)")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
src/conf.c | 33 ++++++++++++++++++++++++++++-----
1 file changed, 28 insertions(+), 5 deletions(-)
diff --git a/src/conf.c b/src/conf.c
index f6c80031..d863dec6 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -4325,18 +4325,23 @@ static int _snd_config_hook_table(snd_config_t *root, snd_config_t *config, snd_
int snd_config_hook_load_for_all_cards(snd_config_t *root, snd_config_t *config, snd_config_t **dst, snd_config_t *private_data ATTRIBUTE_UNUSED)
{
int card = -1, err;
+ snd_config_t *loaded; // trace loaded cards
+ err = snd_config_top(&loaded);
+ if (err < 0)
+ return err;
do {
err = snd_card_next(&card);
if (err < 0)
- return err;
+ goto __fin_err;
if (card >= 0) {
- snd_config_t *n, *private_data = NULL;
+ snd_config_t *n, *m, *private_data = NULL;
const char *driver;
char *fdriver = NULL;
+ bool load;
err = snd_determine_driver(card, &fdriver);
if (err < 0)
- return err;
+ goto __fin_err;
if (snd_config_search(root, fdriver, &n) >= 0) {
if (snd_config_get_string(n, &driver) < 0) {
if (snd_config_get_type(n) == SND_CONFIG_TYPE_COMPOUND) {
@@ -4357,6 +4362,19 @@ int snd_config_hook_load_for_all_cards(snd_config_t *root, snd_config_t *config,
driver = fdriver;
}
__std:
+ load = true;
+ err = snd_config_imake_integer(&m, driver, 1);
+ if (err < 0)
+ goto __err;
+ err = snd_config_add(loaded, m);
+ if (err < 0) {
+ if (err == -EEXIST) {
+ snd_config_delete(m);
+ load = false;
+ } else {
+ goto __err;
+ }
+ }
private_data = _snd_config_hook_private_data(card, driver);
if (!private_data) {
err = -ENOMEM;
@@ -4365,17 +4383,22 @@ int snd_config_hook_load_for_all_cards(snd_config_t *root, snd_config_t *config,
err = _snd_config_hook_table(root, config, private_data);
if (err < 0)
goto __err;
- err = snd_config_hook_load(root, config, &n, private_data);
+ if (load)
+ err = snd_config_hook_load(root, config, &n, private_data);
__err:
if (private_data)
snd_config_delete(private_data);
free(fdriver);
if (err < 0)
- return err;
+ goto __fin_err;
}
} while (card >= 0);
+ snd_config_delete(loaded);
*dst = NULL;
return 0;
+__fin_err:
+ snd_config_delete(loaded);
+ return err;
}
#ifndef DOC_HIDDEN
SND_DLSYM_BUILD_VERSION(snd_config_hook_load_for_all_cards, SND_CONFIG_DLSYM_VERSION_HOOK);