From: Jaroslav Kysela Date: Tue, 18 Nov 2025 13:55:25 +0000 (+0100) Subject: ucm: keep original device name for logs X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=5c4a683bd066d65ff1bf99beb0f9472c52ec8e85;p=alsa-lib.git ucm: keep original device name for logs Signed-off-by: Jaroslav Kysela --- diff --git a/src/ucm/main.c b/src/ucm/main.c index fbe71f3e..9a5dcfa4 100644 --- a/src/ucm/main.c +++ b/src/ucm/main.c @@ -953,7 +953,7 @@ static int execute_component_seq(snd_use_case_mgr_t *uc_mgr, int err; snd_trace(UCM, "execute component sequence '%s': %s", cmpt_seq->device ? - cmpt_seq->device->name : NULL, uc_mgr_enable_str(cmpt_seq->enable)); + cmpt_seq->device->orig_name : NULL, uc_mgr_enable_str(cmpt_seq->enable)); /* enter component domain and store cdev for the component */ uc_mgr->in_component_domain = 1; diff --git a/src/ucm/parser.c b/src/ucm/parser.c index 0cb2f76e..1de09da0 100644 --- a/src/ucm/parser.c +++ b/src/ucm/parser.c @@ -1608,6 +1608,9 @@ static int parse_device(snd_use_case_mgr_t *uc_mgr, INIT_LIST_HEAD(&device->value_list); list_add_tail(&device->list, &verb->device_list); device->name = name; + device->orig_name = strdup(name); + if (device->orig_name == NULL) + return -ENOMEM; /* in-place evaluation */ err = uc_mgr_evaluate_inplace(uc_mgr, cfg); @@ -1845,7 +1848,7 @@ static int verb_dev_list_add(struct use_case_verb *verb, if (list_empty(&device->dev_list.list)) { device->dev_list.type = dst_type; } else { - snd_error(UCM, "incompatible device list type ('%s', '%s')", device->name, src); + snd_error(UCM, "incompatible device list type ('%s', '%s')", device->orig_name, src); return -EINVAL; } } @@ -1984,7 +1987,7 @@ static int verb_normalize_device_names(snd_use_case_mgr_t *uc_mgr, struct use_ca index++; } while (index < 100); /* Safety limit */ if (index >= 100) { - snd_error(UCM, "too many device name conflicts for '%s'", norm_name); + snd_error(UCM, "too many device name conflicts for '%s'", orig_name); err = -EINVAL; goto __error; } @@ -1993,7 +1996,7 @@ static int verb_normalize_device_names(snd_use_case_mgr_t *uc_mgr, struct use_ca __no_colon: err = parse_device_index(&norm_name, &index); if (err < 0) { - snd_error(UCM, "cannot parse device name '%s'", device->name); + snd_error(UCM, "cannot parse device name '%s'", orig_name); goto __error; } diff --git a/src/ucm/ucm_local.h b/src/ucm/ucm_local.h index e4fddb40..e09e6120 100644 --- a/src/ucm/ucm_local.h +++ b/src/ucm/ucm_local.h @@ -165,6 +165,7 @@ struct use_case_device { struct list_head active_list; char *name; + char *orig_name; char *comment; /* device enable and disable sequences */ diff --git a/src/ucm/utils.c b/src/ucm/utils.c index 8b591cee..f4a1f5eb 100644 --- a/src/ucm/utils.c +++ b/src/ucm/utils.c @@ -597,6 +597,7 @@ void uc_mgr_free_modifier(struct list_head *base) void uc_mgr_free_device(struct use_case_device *dev) { free(dev->name); + free(dev->orig_name); free(dev->comment); uc_mgr_free_sequence(&dev->enable_list); uc_mgr_free_sequence(&dev->disable_list);