summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2016-09-21 09:33:34 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2016-09-22 11:31:16 +0200
commit0ad0baac55f7aa39a9b629abb90973745564afc6 (patch)
treeb95d21d06f0e0535a2a544605d2864df13c02b6a /common
parent8776eca37aca1f8d5d2d7091314989d0cc24b89b (diff)
downloadbarebox-0ad0baac55f7aa39a9b629abb90973745564afc6.tar.gz
barebox-0ad0baac55f7aa39a9b629abb90973745564afc6.tar.xz
globalvar: Allow to remove multiple globalvars using wildcards
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common')
-rw-r--r--common/globalvar.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/common/globalvar.c b/common/globalvar.c
index 4bda029c84..989fdb7f8e 100644
--- a/common/globalvar.c
+++ b/common/globalvar.c
@@ -44,12 +44,14 @@ int globalvar_add(const char *name,
void globalvar_remove(const char *name)
{
- struct param_d *param = get_param_by_name(&global_device, name);
+ struct param_d *p, *tmp;
- if (!param)
- return;
+ list_for_each_entry_safe(p, tmp, &global_device.parameters, list) {
+ if (fnmatch(name, p->name, 0))
+ continue;
- dev_remove_param(param);
+ dev_remove_param(p);
+ }
}
static int __nv_save(const char *prefix, const char *name, const char *val)