diff options
-rw-r--r-- | kernel/softirq.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index 68eb5efec388..c0490464e92f 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -738,7 +738,10 @@ static int run_ksoftirqd(void * __bind_cpu) | |||
738 | don't process */ | 738 | don't process */ |
739 | if (cpu_is_offline((long)__bind_cpu)) | 739 | if (cpu_is_offline((long)__bind_cpu)) |
740 | goto wait_to_die; | 740 | goto wait_to_die; |
741 | do_softirq(); | 741 | local_irq_disable(); |
742 | if (local_softirq_pending()) | ||
743 | __do_softirq(); | ||
744 | local_irq_enable(); | ||
742 | preempt_enable_no_resched(); | 745 | preempt_enable_no_resched(); |
743 | cond_resched(); | 746 | cond_resched(); |
744 | preempt_disable(); | 747 | preempt_disable(); |