X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fsoftirq.c;h=ad3295cdded55032f248bf53dc6b908c56702581;hb=d11d9b2dd2c43dd99a491df8a83ae28401db0044;hp=31007d6542cccbf6c4df2607a848802d13b5fd63;hpb=5a90fa71f6d45054c78b2bd6dbc4feba1638e1d2;p=linux-2.6 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;