Re: [PATCH 5/6]kernel:module.c variable 'nowarn' set but not used

From: Geert Uytterhoeven
Date: Sat Jun 19 2010 - 16:23:58 EST


On Sat, Jun 19, 2010 at 22:10, Justin P. Mattock
<justinmattock@xxxxxxxxx> wrote:
> On 06/19/2010 12:45 PM, Geert Uytterhoeven wrote:
>>
>> On Sat, Jun 19, 2010 at 21:10, Justin P. Mattock
>> <justinmattock@xxxxxxxxx> Âwrote:
>>>
>>> On 06/19/2010 01:08 AM, Geert Uytterhoeven wrote:
>>>>
>>>> On Sat, Jun 19, 2010 at 07:04, Justin P. Mattock
>>>> <justinmattock@xxxxxxxxx> Â Âwrote:
>>>>>>
>>>>>> Also wrong, you removed the creation of the links in sysfs.
>>>>>>
>>>>>> The assignment to nowarn was there to avoid another compiler warning,
>>>>>> as sysfs_create_link() is marked __must_check.
>>>>>
>>>>> I also went back to this one and made the following changes.. let me
>>>>> know
>>>>> if
>>>>> it's wrong etc..
>>>>>
>>>>> ÂFrom 4f45beed80627d2bb32fb021bb6d22d88089557b Mon Sep 17 00:00:00 2001
>>>>> From: Justin P. Mattock<justinmattock@xxxxxxxxx>
>>>>> Date: Fri, 18 Jun 2010 22:01:07 -0700
>>>>> Subject: [PATCH 5/5] module.c
>>>>> ÂSigned-off-by: Justin P. Mattock<justinmattock@xxxxxxxxx>
>>>>>
>>>>> ---
>>>>> Âkernel/module.c | Â Â3 +--
>>>>> Â1 files changed, 1 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/kernel/module.c b/kernel/module.c
>>>>> index 8c6b428..48fc5c8 100644
>>>>> --- a/kernel/module.c
>>>>> +++ b/kernel/module.c
>>>>> @@ -1340,11 +1340,10 @@ static void add_usage_links(struct module *mod)
>>>>> Â{
>>>>> Â#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,
>>>>> + Â Â Â Â Â Â Â sysfs_create_link(use->target->holders_dir,
>>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â &mod->mkobj.kobj, mod->name);
>>>>> Â Â Â Â}
>>>>> Â Â Â Âmutex_unlock(&module_mutex);
>>>>> --
>>>>> 1.7.1.rc1.21.gf3bd6
>>>>>
>>>>> if it looks good, then I can resend it out.
>>>>
>>>> Have you compile-tested this?
>>>> As sysfs_create_link() is marked __must_check, that will cause another
>>>> compiler
>>>> warning, but only if CONFIG_SYSFS=y.
>>>>
>>>> Perhaps you can just mark the nowarn variable __unused?
>>>
>>>
>>> o.k. this builds cleanly without a warning, but is it the right thing
>>> todo?
>>> i.g. rather leave the warning message there and file a bug than just
>>> silence
>>> the issue. Anyways here is what I have:
>>>
>>> ÂFrom edbeb2b1ee051218f9e5b93fcb8bbdbf1119a6e4 Mon Sep 17 00:00:00 2001
>>> From: Justin P. Mattock<justinmattock@xxxxxxxxx>
>>> Date: Sat, 19 Jun 2010 12:07:32 -0700
>>> Subject: [PATCH 5/5] module.c
>>> ÂSigned-off-by: Justin P. Mattock<justinmattock@xxxxxxxxx>
>>>
>>> ---
>>> Âkernel/module.c | Â Â2 +-
>>> Â1 files changed, 1 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/kernel/module.c b/kernel/module.c
>>> index 8c6b428..765bac5 100644
>>> --- a/kernel/module.c
>>> +++ b/kernel/module.c
>>> @@ -1340,7 +1340,7 @@ static void add_usage_links(struct module *mod)
>>> Â{
>>> Â#ifdef CONFIG_MODULE_UNLOAD
>>> Â Â Â Âstruct module_use *use;
>>> - Â Â Â int nowarn;
>>> + Â Â Â int nowarn __attribute__((unused));
>>
>> The `__attribute__((unused))' should be `__used'.
>>
>
> I'm confused now. how should I write that out?
> (google is not giving me vary many examples on this)

Sorry, I misrememberd there was a #define for it, and could find only __used.
But on closer look, the `__attribute__((unused)` is correct.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/