aboutsummaryrefslogtreecommitdiffstats
path: root/ipc/util.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2013-04-29 18:08:05 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-04-29 18:54:36 -0400
commit8f68fa2d1908365cb372b1aebf89d6af4b2b3871 (patch)
tree4885cec0a47e288ea797d07837e31b215425f264 /ipc/util.c
parentf02c696800886382198df897b30bb796b46a8dae (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.c15
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
52static void ipc_memory_notifier(struct work_struct *work) 51static void ipc_memory_notifier(struct work_struct *work)
53{ 52{
54 ipcns_notify(IPCNS_MEMCHANGED); 53 ipcns_notify(IPCNS_MEMCHANGED);
55} 54}
56 55
57static DECLARE_WORK(ipc_memory_wq, ipc_memory_notifier);
58
59
60static int ipc_memory_callback(struct notifier_block *self, 56static 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 */ 86static 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}