|
@@ -35,6 +35,7 @@
|
|
|
#include <linux/msi.h>
|
|
|
#include <linux/htirq.h>
|
|
|
#include <linux/freezer.h>
|
|
|
+#include <linux/kthread.h>
|
|
|
|
|
|
#include <asm/io.h>
|
|
|
#include <asm/smp.h>
|
|
@@ -661,8 +662,6 @@ static int balanced_irq(void *unused)
|
|
|
unsigned long prev_balance_time = jiffies;
|
|
|
long time_remaining = balanced_irq_interval;
|
|
|
|
|
|
- daemonize("kirqd");
|
|
|
-
|
|
|
/* push everything to CPU 0 to give us a starting point. */
|
|
|
for (i = 0 ; i < NR_IRQS ; i++) {
|
|
|
irq_desc[i].pending_mask = cpumask_of_cpu(0);
|
|
@@ -722,10 +721,9 @@ static int __init balanced_irq_init(void)
|
|
|
}
|
|
|
|
|
|
printk(KERN_INFO "Starting balanced_irq\n");
|
|
|
- if (kernel_thread(balanced_irq, NULL, CLONE_KERNEL) >= 0)
|
|
|
+ if (!IS_ERR(kthread_run(balanced_irq, NULL, "kirqd")))
|
|
|
return 0;
|
|
|
- else
|
|
|
- printk(KERN_ERR "balanced_irq_init: failed to spawn balanced_irq");
|
|
|
+ printk(KERN_ERR "balanced_irq_init: failed to spawn balanced_irq");
|
|
|
failed:
|
|
|
for_each_possible_cpu(i) {
|
|
|
kfree(irq_cpu_data[i].irq_delta);
|