diff options
author | Chandra Seetharaman <sekharan@us.ibm.com> | 2006-06-27 05:54:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-27 20:32:40 -0400 |
commit | 9c7b216d23e820e0e148d5be01bbb5bd2d8378fe (patch) | |
tree | 53e6c1e4870db49b4999b4053862d3f63375773f /mm | |
parent | 6ac12dfe9c2027cd3c5ed603f11d1bb4f04906fe (diff) |
[PATCH] cpu hotplug: revert init patch submitted for 2.6.17
In 2.6.17, there was a problem with cpu_notifiers and XFS. I provided a
band-aid solution to solve that problem. In the process, i undid all the
changes you both were making to ensure that these notifiers were available
only at init time (unless CONFIG_HOTPLUG_CPU is defined).
We deferred the real fix to 2.6.18. Here is a set of patches that fixes the
XFS problem cleanly and makes the cpu notifiers available only at init time
(unless CONFIG_HOTPLUG_CPU is defined).
If CONFIG_HOTPLUG_CPU is defined then cpu notifiers are available at run
time.
This patch reverts the notifier_call changes made in 2.6.17
Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
Cc: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/page_alloc.c | 2 | ||||
-rw-r--r-- | mm/slab.c | 2 | ||||
-rw-r--r-- | mm/vmscan.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 9f86191bb632..e9fb2d4064c8 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -2009,7 +2009,7 @@ static inline void free_zone_pagesets(int cpu) | |||
2009 | } | 2009 | } |
2010 | } | 2010 | } |
2011 | 2011 | ||
2012 | static int pageset_cpuup_callback(struct notifier_block *nfb, | 2012 | static int __cpuinit pageset_cpuup_callback(struct notifier_block *nfb, |
2013 | unsigned long action, | 2013 | unsigned long action, |
2014 | void *hcpu) | 2014 | void *hcpu) |
2015 | { | 2015 | { |
@@ -1073,7 +1073,7 @@ static inline int cache_free_alien(struct kmem_cache *cachep, void *objp) | |||
1073 | 1073 | ||
1074 | #endif | 1074 | #endif |
1075 | 1075 | ||
1076 | static int cpuup_callback(struct notifier_block *nfb, | 1076 | static int __devinit cpuup_callback(struct notifier_block *nfb, |
1077 | unsigned long action, void *hcpu) | 1077 | unsigned long action, void *hcpu) |
1078 | { | 1078 | { |
1079 | long cpu = (long)hcpu; | 1079 | long cpu = (long)hcpu; |
diff --git a/mm/vmscan.c b/mm/vmscan.c index f03da33d9147..eeacb0d695c3 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -1450,7 +1450,7 @@ out: | |||
1450 | not required for correctness. So if the last cpu in a node goes | 1450 | not required for correctness. So if the last cpu in a node goes |
1451 | away, we get changed to run anywhere: as the first one comes back, | 1451 | away, we get changed to run anywhere: as the first one comes back, |
1452 | restore their cpu bindings. */ | 1452 | restore their cpu bindings. */ |
1453 | static int cpu_callback(struct notifier_block *nfb, | 1453 | static int __devinit cpu_callback(struct notifier_block *nfb, |
1454 | unsigned long action, void *hcpu) | 1454 | unsigned long action, void *hcpu) |
1455 | { | 1455 | { |
1456 | pg_data_t *pgdat; | 1456 | pg_data_t *pgdat; |