sparc64: Fix accidental syscall restart on child return from clone/fork/vfork.
authorDavid S. Miller <davem@davemloft.net>
Sun, 27 Apr 2008 21:54:02 +0000 (14:54 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 27 Apr 2008 22:09:15 +0000 (15:09 -0700)
commitfd7354108aa5497d7177b95a6b157eaf8597d621
tree0a068f4fcf29fae36794a0b653e6e4f136b62241
parent90888816ba1bf1c4eff1e7e4220c1afc802f0fd3
sparc64: Fix accidental syscall restart on child return from clone/fork/vfork.

This fixes a regression added by
238468b2ac76020c192a7402c92df5097916bf4a ("[SPARC64]: Use trap type
stored in pt_regs to handle syscall restart.")

Because we now encode the "returning from syscall" status in the
pt_regs area, we have to be mindful to zap it out in the child
of a fork.

During a parallel kernel build I saw an accidental -EINTR return
from vfork() in 'make' because of this bug.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/process.c