aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2007-05-09 05:35:10 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-09 15:30:56 -0400
commit8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d (patch)
treef4e305edaedbde05774bb1e4acd89a9475661d2e /arch/s390
parentf37bc2712b54ec641e0c0c8634f1a4b61d9956c0 (diff)
Add suspend-related notifications for CPU hotplug
Since nonboot CPUs are now disabled after tasks and devices have been frozen and the CPU hotplug infrastructure is used for this purpose, we need special CPU hotplug notifications that will help the CPU-hotplug-aware subsystems distinguish normal CPU hotplug events from CPU hotplug events related to a system-wide suspend or resume operation in progress. This patch introduces such notifications and causes them to be used during suspend and resume transitions. It also changes all of the CPU-hotplug-aware subsystems to take these notifications into consideration (for now they are handled in the same way as the corresponding "normal" ones). [oleg@tv-sign.ru: cleanups] Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Cc: Gautham R Shenoy <ego@in.ibm.com> Cc: Pavel Machek <pavel@ucw.cz> Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/appldata/appldata_base.c2
-rw-r--r--arch/s390/kernel/smp.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c
index ee89b33145d5..81a2b92ab0c2 100644
--- a/arch/s390/appldata/appldata_base.c
+++ b/arch/s390/appldata/appldata_base.c
@@ -567,9 +567,11 @@ appldata_cpu_notify(struct notifier_block *self,
567{ 567{
568 switch (action) { 568 switch (action) {
569 case CPU_ONLINE: 569 case CPU_ONLINE:
570 case CPU_ONLINE_FROZEN:
570 appldata_online_cpu((long) hcpu); 571 appldata_online_cpu((long) hcpu);
571 break; 572 break;
572 case CPU_DEAD: 573 case CPU_DEAD:
574 case CPU_DEAD_FROZEN:
573 appldata_offline_cpu((long) hcpu); 575 appldata_offline_cpu((long) hcpu);
574 break; 576 break;
575 default: 577 default:
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index b7977027a28f..09f028a3266b 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -789,10 +789,12 @@ static int __cpuinit smp_cpu_notify(struct notifier_block *self,
789 789
790 switch (action) { 790 switch (action) {
791 case CPU_ONLINE: 791 case CPU_ONLINE:
792 case CPU_ONLINE_FROZEN:
792 if (sysdev_create_file(s, &attr_capability)) 793 if (sysdev_create_file(s, &attr_capability))
793 return NOTIFY_BAD; 794 return NOTIFY_BAD;
794 break; 795 break;
795 case CPU_DEAD: 796 case CPU_DEAD:
797 case CPU_DEAD_FROZEN:
796 sysdev_remove_file(s, &attr_capability); 798 sysdev_remove_file(s, &attr_capability);
797 break; 799 break;
798 } 800 }