Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1656165 > unrolled thread

[PATCH] kernel/module.c: fix warning about unused nowarn variable

Started byCorentin Labbe <clabbe.montjoie@gmail.com>
First post2017-06-02 14:10 +0200
Last post2017-06-06 08:40 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] kernel/module.c: fix warning about unused nowarn variable Corentin Labbe <clabbe.montjoie@gmail.com> - 2017-06-02 14:10 +0200
    Re: [PATCH] kernel/module.c: fix warning about unused nowarn variable Jessica Yu <jeyu@redhat.com> - 2017-06-06 07:10 +0200
      Re: [PATCH] kernel/module.c: fix warning about unused nowarn variable Corentin Labbe <clabbe.montjoie@gmail.com> - 2017-06-06 08:40 +0200

#1656165 — [PATCH] kernel/module.c: fix warning about unused nowarn variable

FromCorentin Labbe <clabbe.montjoie@gmail.com>
Date2017-06-02 14:10 +0200
Subject[PATCH] kernel/module.c: fix warning about unused nowarn variable
Message-ID<tNTyV-RF-17@gated-at.bofh.it>
This patch fix the following warning:
kernel/module.c: In function 'add_usage_links':
kernel/module.c:1653:6: warning: variable 'nowarn' set but not used [-Wunused-but-set-variable]
  int nowarn;

Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
 kernel/module.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/kernel/module.c b/kernel/module.c
index e3e9dbba6a5b..aed902bcb4aa 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1663,19 +1663,20 @@ static inline void remove_notes_attrs(struct module *mod)
 }
 #endif /* CONFIG_KALLSYMS */
 
-static void add_usage_links(struct module *mod)
+static int add_usage_links(struct module *mod)
 {
+	int ret = 0;
 #ifdef CONFIG_MODULE_UNLOAD
 	struct module_use *use;
-	int nowarn;
 
 	mutex_lock(&module_mutex);
 	list_for_each_entry(use, &mod->target_list, target_list) {
-		nowarn = sysfs_create_link(use->target->holders_dir,
+		ret = sysfs_create_link(use->target->holders_dir,
 					   &mod->mkobj.kobj, mod->name);
 	}
 	mutex_unlock(&module_mutex);
 #endif
+	return ret;
 }
 
 static void del_usage_links(struct module *mod)
@@ -1798,13 +1799,17 @@ static int mod_sysfs_setup(struct module *mod,
 	if (err)
 		goto out_unreg_param;
 
-	add_usage_links(mod);
+	err = add_usage_links(mod);
+	if (err)
+		goto out_unreg_usage_links;
 	add_sect_attrs(mod, info);
 	add_notes_attrs(mod, info);
 
 	kobject_uevent(&mod->mkobj.kobj, KOBJ_ADD);
 	return 0;
 
+out_unreg_usage_links:
+	module_remove_modinfo_attrs(mod);
 out_unreg_param:
 	module_param_sysfs_remove(mod);
 out_unreg_holders:
-- 
2.13.0

[toc] | [next] | [standalone]


#1658354

FromJessica Yu <jeyu@redhat.com>
Date2017-06-06 07:10 +0200
Message-ID<tPeUF-4oZ-1@gated-at.bofh.it>
In reply to#1656165
+++ Corentin Labbe [02/06/17 14:05 +0200]:
>This patch fix the following warning:
>kernel/module.c: In function 'add_usage_links':
>kernel/module.c:1653:6: warning: variable 'nowarn' set but not used [-Wunused-but-set-variable]
>  int nowarn;
>
>Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
>---
> kernel/module.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
>diff --git a/kernel/module.c b/kernel/module.c
>index e3e9dbba6a5b..aed902bcb4aa 100644
>--- a/kernel/module.c
>+++ b/kernel/module.c
>@@ -1663,19 +1663,20 @@ static inline void remove_notes_attrs(struct module *mod)
> }
> #endif /* CONFIG_KALLSYMS */
>
>-static void add_usage_links(struct module *mod)
>+static int add_usage_links(struct module *mod)
> {
>+	int ret = 0;
> #ifdef CONFIG_MODULE_UNLOAD
> 	struct module_use *use;
>-	int nowarn;
>
> 	mutex_lock(&module_mutex);
> 	list_for_each_entry(use, &mod->target_list, target_list) {
>-		nowarn = sysfs_create_link(use->target->holders_dir,
>+		ret = sysfs_create_link(use->target->holders_dir,
> 					   &mod->mkobj.kobj, mod->name);

ret will get overwritten with each iteration of the loop; we should return
ret as soon as we hit an error (while making sure we unlock
module_mutex).

> 	}
> 	mutex_unlock(&module_mutex);
> #endif
>+	return ret;
> }
>
> static void del_usage_links(struct module *mod)
>@@ -1798,13 +1799,17 @@ static int mod_sysfs_setup(struct module *mod,
> 	if (err)
> 		goto out_unreg_param;
>
>-	add_usage_links(mod);
>+	err = add_usage_links(mod);
>+	if (err)
>+		goto out_unreg_usage_links;

Small nitpick: could you add an extra newline here?

> 	add_sect_attrs(mod, info);
> 	add_notes_attrs(mod, info);
>
> 	kobject_uevent(&mod->mkobj.kobj, KOBJ_ADD);
> 	return 0;
>
>+out_unreg_usage_links:

Can you rename this to `out_unreg_modinfo_attrs` (to better reflect
what's being done)?

>+	module_remove_modinfo_attrs(mod);
> out_unreg_param:
> 	module_param_sysfs_remove(mod);
> out_unreg_holders:

Thanks,

Jessica

[toc] | [prev] | [next] | [standalone]


#1658390

FromCorentin Labbe <clabbe.montjoie@gmail.com>
Date2017-06-06 08:40 +0200
Message-ID<tPgjL-58I-7@gated-at.bofh.it>
In reply to#1658354
On Mon, Jun 05, 2017 at 10:09:24PM -0700, Jessica Yu wrote:
> +++ Corentin Labbe [02/06/17 14:05 +0200]:
> >This patch fix the following warning:
> >kernel/module.c: In function 'add_usage_links':
> >kernel/module.c:1653:6: warning: variable 'nowarn' set but not used [-Wunused-but-set-variable]
> >  int nowarn;
> >
> >Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
> >---
> > kernel/module.c | 13 +++++++++----
> > 1 file changed, 9 insertions(+), 4 deletions(-)
> >
> >diff --git a/kernel/module.c b/kernel/module.c
> >index e3e9dbba6a5b..aed902bcb4aa 100644
> >--- a/kernel/module.c
> >+++ b/kernel/module.c
> >@@ -1663,19 +1663,20 @@ static inline void remove_notes_attrs(struct module *mod)
> > }
> > #endif /* CONFIG_KALLSYMS */
> >
> >-static void add_usage_links(struct module *mod)
> >+static int add_usage_links(struct module *mod)
> > {
> >+	int ret = 0;
> > #ifdef CONFIG_MODULE_UNLOAD
> > 	struct module_use *use;
> >-	int nowarn;
> >
> > 	mutex_lock(&module_mutex);
> > 	list_for_each_entry(use, &mod->target_list, target_list) {
> >-		nowarn = sysfs_create_link(use->target->holders_dir,
> >+		ret = sysfs_create_link(use->target->holders_dir,
> > 					   &mod->mkobj.kobj, mod->name);
> 
> ret will get overwritten with each iteration of the loop; we should return
> ret as soon as we hit an error (while making sure we unlock
> module_mutex).
> 

Thanks, I will fix all reported errors.
I just found also that in case of error, I need to "del_usage_links"

Regards

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web