Messages in this thread | | | Date | Tue, 30 Apr 2013 10:03:58 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] memory hotplug: fix warnings |
| |
On Tue, 30 Apr 2013 09:54:18 -0700 (PDT) David Rientjes <rientjes@google.com> wrote:
> On Tue, 30 Apr 2013, Andrew Morton wrote: > > > > > diff --git a/include/linux/memory.h b/include/linux/memory.h > > > > index 73817af..85c31a8 100644 > > > > --- a/include/linux/memory.h > > > > +++ b/include/linux/memory.h > > > > @@ -137,7 +137,7 @@ enum mem_add_context { BOOT, HOTPLUG }; > > > > #define register_hotmemory_notifier(nb) register_memory_notifier(nb) > > > > #define unregister_hotmemory_notifier(nb) unregister_memory_notifier(nb) > > > > #else > > > > -#define hotplug_memory_notifier(fn, pri) (0) > > > > +#define hotplug_memory_notifier(fn, pri) ({ 0; }) > > > > /* These aren't inline functions due to a GCC bug. */ > > > > #define register_hotmemory_notifier(nb) ({ (void)(nb); 0; }) > > > > #define unregister_hotmemory_notifier(nb) ({ (void)(nb); }) > > > > > > You can't use the standard do {} while (0)? > > > > register_memory_notifier() (and hence hotplug_memory_notifier()) > > returns an errno. Which nobody bothers checking. > > > > The notifier itself is statically allocated so there's no memory > allocations in this path, there's no chance it'll fail. Should we just > make register_memory_notifier() return void?
Drill down and we end up in notifier_chain_register(), which unconditionally returns 0.
So we can either leave things as they are under the assumption that notifier_chain_register() might one day be changed to return an errno or we can change everything to return void.
| |