diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2013-04-29 18:08:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 18:54:36 -0400 |
commit | 8f68fa2d1908365cb372b1aebf89d6af4b2b3871 (patch) | |
tree | 4885cec0a47e288ea797d07837e31b215425f264 /ipc/util.c | |
parent | f02c696800886382198df897b30bb796b46a8dae (diff) |
ipc/util.c: use register_hotmemory_notifier()
Squishes a statement-with-no-effect warning, removes some ifdefs and
shrinks .text by one byte!
Note that this code fails to check for blocking_notifier_chain_register()
failures.
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc/util.c')
-rw-r--r-- | ipc/util.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/ipc/util.c b/ipc/util.c index 464a8abd779f..03eadd8fb0fd 100644 --- a/ipc/util.c +++ b/ipc/util.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/msg.h> | 23 | #include <linux/msg.h> |
24 | #include <linux/vmalloc.h> | 24 | #include <linux/vmalloc.h> |
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include <linux/notifier.h> | ||
26 | #include <linux/capability.h> | 27 | #include <linux/capability.h> |
27 | #include <linux/highuid.h> | 28 | #include <linux/highuid.h> |
28 | #include <linux/security.h> | 29 | #include <linux/security.h> |
@@ -47,19 +48,16 @@ struct ipc_proc_iface { | |||
47 | int (*show)(struct seq_file *, void *); | 48 | int (*show)(struct seq_file *, void *); |
48 | }; | 49 | }; |
49 | 50 | ||
50 | #ifdef CONFIG_MEMORY_HOTPLUG | ||
51 | |||
52 | static void ipc_memory_notifier(struct work_struct *work) | 51 | static void ipc_memory_notifier(struct work_struct *work) |
53 | { | 52 | { |
54 | ipcns_notify(IPCNS_MEMCHANGED); | 53 | ipcns_notify(IPCNS_MEMCHANGED); |
55 | } | 54 | } |
56 | 55 | ||
57 | static DECLARE_WORK(ipc_memory_wq, ipc_memory_notifier); | ||
58 | |||
59 | |||
60 | static int ipc_memory_callback(struct notifier_block *self, | 56 | static int ipc_memory_callback(struct notifier_block *self, |
61 | unsigned long action, void *arg) | 57 | unsigned long action, void *arg) |
62 | { | 58 | { |
59 | static DECLARE_WORK(ipc_memory_wq, ipc_memory_notifier); | ||
60 | |||
63 | switch (action) { | 61 | switch (action) { |
64 | case MEM_ONLINE: /* memory successfully brought online */ | 62 | case MEM_ONLINE: /* memory successfully brought online */ |
65 | case MEM_OFFLINE: /* or offline: it's time to recompute msgmni */ | 63 | case MEM_OFFLINE: /* or offline: it's time to recompute msgmni */ |
@@ -85,7 +83,10 @@ static int ipc_memory_callback(struct notifier_block *self, | |||
85 | return NOTIFY_OK; | 83 | return NOTIFY_OK; |
86 | } | 84 | } |
87 | 85 | ||
88 | #endif /* CONFIG_MEMORY_HOTPLUG */ | 86 | static struct notifier_block ipc_memory_nb = { |
87 | .notifier_call = ipc_memory_callback, | ||
88 | .priority = IPC_CALLBACK_PRI, | ||
89 | }; | ||
89 | 90 | ||
90 | /** | 91 | /** |
91 | * ipc_init - initialise IPC subsystem | 92 | * ipc_init - initialise IPC subsystem |
@@ -102,7 +103,7 @@ static int __init ipc_init(void) | |||
102 | sem_init(); | 103 | sem_init(); |
103 | msg_init(); | 104 | msg_init(); |
104 | shm_init(); | 105 | shm_init(); |
105 | hotplug_memory_notifier(ipc_memory_callback, IPC_CALLBACK_PRI); | 106 | register_hotmemory_notifier(&ipc_memory_nb); |
106 | register_ipcns_notifier(&init_ipc_ns); | 107 | register_ipcns_notifier(&init_ipc_ns); |
107 | return 0; | 108 | return 0; |
108 | } | 109 | } |