mirror of
git://slackware.nl/current.git
synced 2025-02-05 20:46:11 +01:00
![Patrick J Volkerding](/assets/img/avatar_default.png)
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.
94 lines
3 KiB
Diff
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);
|