important ppc64 bug fixes
Anton Blanchard
anton at samba.org
Wed Nov 12 04:12:13 EST 2003
> - fix signal wakeup race due to unordered access of SIGPENDING and
> TASK_INTERRUPTIBLE (Anton)
The ppc64 specific part.
diff --exclude=SCCS -ur linux-2.5/arch/ppc64/kernel/signal.c for-linus-ppc64/arch/ppc64/kernel/signal.c
--- linux-2.5/arch/ppc64/kernel/signal.c 2003-07-17 06:09:04.000000000 +1000
+++ for-linus-ppc64/arch/ppc64/kernel/signal.c 2003-11-12 04:07:21.310243191 +1100
@@ -95,7 +95,7 @@
regs->gpr[3] = EINTR;
regs->ccr |= 0x10000000;
while (1) {
- current->state = TASK_INTERRUPTIBLE;
+ set_current_state(TASK_INTERRUPTIBLE);
schedule();
if (do_signal(&saveset, regs))
return regs->gpr[3];
diff --exclude=SCCS -ur linux-2.5/arch/ppc64/kernel/signal32.c for-linus-ppc64/arch/ppc64/kernel/signal32.c
--- linux-2.5/arch/ppc64/kernel/signal32.c 2003-07-17 06:09:04.000000000 +1000
+++ for-linus-ppc64/arch/ppc64/kernel/signal32.c 2003-11-12 04:07:22.381217152 +1100
@@ -133,7 +133,7 @@
regs->gpr[3] = EINTR;
regs->ccr |= 0x10000000;
while (1) {
- current->state = TASK_INTERRUPTIBLE;
+ set_current_state(TASK_INTERRUPTIBLE);
schedule();
if (do_signal32(&saveset, regs))
/*
@@ -806,7 +806,7 @@
regs->gpr[3] = EINTR;
regs->ccr |= 0x10000000;
while (1) {
- current->state = TASK_INTERRUPTIBLE;
+ set_current_state(TASK_INTERRUPTIBLE);
schedule();
if (do_signal32(&saveset, regs))
/*
** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc64-dev
mailing list