s390/cpu hotplug: mask out CPU_TASKS_FROZEN in cu hotplug notifiers
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 27 Aug 2012 13:43:49 +0000 (15:43 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 26 Sep 2012 13:44:53 +0000 (15:44 +0200)
Unify all our cpu hotplug notifiers to mask out the CPU_TASKS_FROZEN
bit, so we don't have to add all the *_FROZEN variant cases to the
notifiers.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/smp.c
arch/s390/kernel/vtime.c
arch/s390/mm/fault.c

index 823c5bf..87be102 100644 (file)
@@ -959,13 +959,11 @@ static int __cpuinit smp_cpu_notify(struct notifier_block *self,
        struct device *s = &c->dev;
        int err = 0;
 
-       switch (action) {
+       switch (action & ~CPU_TASKS_FROZEN) {
        case CPU_ONLINE:
-       case CPU_ONLINE_FROZEN:
                err = sysfs_create_group(&s->kobj, &cpu_online_attr_group);
                break;
        case CPU_DEAD:
-       case CPU_DEAD_FROZEN:
                sysfs_remove_group(&s->kobj, &cpu_online_attr_group);
                break;
        }
index 4fc97b4..d100c92 100644 (file)
@@ -378,9 +378,8 @@ static int __cpuinit s390_nohz_notify(struct notifier_block *self,
        long cpu = (long) hcpu;
 
        idle = &per_cpu(s390_idle, cpu);
-       switch (action) {
+       switch (action & ~CPU_TASKS_FROZEN) {
        case CPU_DYING:
-       case CPU_DYING_FROZEN:
                idle->nohz_delay = 0;
        default:
                break;
index 6c013f5..12c887b 100644 (file)
@@ -628,9 +628,8 @@ static int __cpuinit pfault_cpu_notify(struct notifier_block *self,
        struct thread_struct *thread, *next;
        struct task_struct *tsk;
 
-       switch (action) {
+       switch (action & ~CPU_TASKS_FROZEN) {
        case CPU_DEAD:
-       case CPU_DEAD_FROZEN:
                spin_lock_irq(&pfault_lock);
                list_for_each_entry_safe(thread, next, &pfault_list, list) {
                        thread->pfault_wait = 0;