| Kernel v2.4.20-pre1-ac1 /kernel/signal.c |
|---|
 2.4.20-pre1-ac1
 kernel
 signal.c
diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.20pre1/kernel/signal.c linux.20pre1-ac1/kernel/signal.c
--- linux.20pre1/kernel/signal.c 2002-08-06 15:40:34.000000000 +0100
+++ linux.20pre1-ac1/kernel/signal.c 2002-08-06 15:41:51.000000000 +0100
@@ -492,7 +492,7 @@
* No need to set need_resched since signal event passing
* goes through ->blocked
*/
-static inline void signal_wake_up(struct task_struct *t)
+inline void signal_wake_up(struct task_struct *t)
{
t->sigpending = 1;
@@ -507,12 +507,9 @@
* process of changing - but no harm is done by that
* other than doing an extra (lightweight) IPI interrupt.
*/
- spin_lock(&runqueue_lock);
- if (task_has_cpu(t) && t->processor != smp_processor_id())
- smp_send_reschedule(t->processor);
- spin_unlock(&runqueue_lock);
-#endif /* CONFIG_SMP */
-
+ if ((t->state == TASK_RUNNING) && (t->cpu != cpu()))
+ kick_if_running(t);
+#endif
if (t->state & TASK_INTERRUPTIBLE) {
wake_up_process(t);
return;
|