softirq.c (458ce2910aa83d8a2cafb489d727f7da839e73c6) | softirq.c (bd2f55361f18347e890d52ff9cfd8895455ec11b) |
---|---|
1/* 2 * linux/kernel/softirq.c 3 * 4 * Copyright (C) 1992 Linus Torvalds 5 * 6 * Distribute under GPLv2. 7 * 8 * Rewritten. Old one was good in 2.2, but in 2.3 it was immoral. --ANK (990903) --- 730 unchanged lines hidden (view full) --- 739 740static int run_ksoftirqd(void * __bind_cpu) 741{ 742 set_current_state(TASK_INTERRUPTIBLE); 743 744 while (!kthread_should_stop()) { 745 preempt_disable(); 746 if (!local_softirq_pending()) { | 1/* 2 * linux/kernel/softirq.c 3 * 4 * Copyright (C) 1992 Linus Torvalds 5 * 6 * Distribute under GPLv2. 7 * 8 * Rewritten. Old one was good in 2.2, but in 2.3 it was immoral. --ANK (990903) --- 730 unchanged lines hidden (view full) --- 739 740static int run_ksoftirqd(void * __bind_cpu) 741{ 742 set_current_state(TASK_INTERRUPTIBLE); 743 744 while (!kthread_should_stop()) { 745 preempt_disable(); 746 if (!local_softirq_pending()) { |
747 preempt_enable_no_resched(); 748 schedule(); 749 preempt_disable(); | 747 schedule_preempt_disabled(); |
750 } 751 752 __set_current_state(TASK_RUNNING); 753 754 while (local_softirq_pending()) { 755 /* Preempt disable stops cpu going offline. 756 If already offline, we'll be on wrong CPU: 757 don't process */ --- 176 unchanged lines hidden --- | 748 } 749 750 __set_current_state(TASK_RUNNING); 751 752 while (local_softirq_pending()) { 753 /* Preempt disable stops cpu going offline. 754 If already offline, we'll be on wrong CPU: 755 don't process */ --- 176 unchanged lines hidden --- |