X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=kernel%2Fsoftirq.c;h=ad3295cdded55032f248bf53dc6b908c56702581;hb=e65845235c8120be63001fc1a4ac00c819194bbe;hp=31007d6542cccbf6c4df2607a848802d13b5fd63;hpb=bdf242eeb0f69567fe43eba93889d80ecacbfe94;p=powerpc.git diff --git a/kernel/softirq.c b/kernel/softirq.c index 31007d6542..ad3295cdde 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -84,9 +84,9 @@ asmlinkage void __do_softirq(void) cpu = smp_processor_id(); restart: /* Reset the pending bitmask before enabling irqs */ - local_softirq_pending() = 0; + set_softirq_pending(0); - //local_irq_enable(); + local_irq_enable(); h = softirq_vec; @@ -99,7 +99,7 @@ restart: pending >>= 1; } while (pending); - //local_irq_disable(); + local_irq_disable(); pending = local_softirq_pending(); if (pending && --max_restart) @@ -470,7 +470,8 @@ static int __devinit cpu_callback(struct notifier_block *nfb, #ifdef CONFIG_HOTPLUG_CPU case CPU_UP_CANCELED: /* Unbind so it can run. Fall thru. */ - kthread_bind(per_cpu(ksoftirqd, hotcpu), smp_processor_id()); + kthread_bind(per_cpu(ksoftirqd, hotcpu), + any_online_cpu(cpu_online_map)); case CPU_DEAD: p = per_cpu(ksoftirqd, hotcpu); per_cpu(ksoftirqd, hotcpu) = NULL;