Messages in this thread | | | Subject | Re: 2.4.17: sys_sigsuspend does not return value | From | Andreas Schwab <> | Date | Sat, 19 Jan 2002 00:59:04 +0100 |
| |
Pavel Machek <pavel@suse.cz> writes:
|> Hi! |> |> >From 2.4.17: |> |> asmlinkage int |> sys_sigsuspend(int history0, int history1, old_sigset_t mask) |> { |> struct pt_regs * regs = (struct pt_regs *) &history0; |> sigset_t saveset; |> |> mask &= _BLOCKABLE; |> spin_lock_irq(¤t->sigmask_lock); |> saveset = current->blocked; |> siginitset(¤t->blocked, mask); |> recalc_sigpending(current); |> spin_unlock_irq(¤t->sigmask_lock); |> |> regs->eax = -EINTR; |> while (1) { ^^^^^^^^^ |> current->state = TASK_INTERRUPTIBLE; |> schedule(); |> if (do_signal(regs, &saveset)) |> return -EINTR; |> } |> } |> |> ...Which looks to me like it returns something undefined when |> do_signal returns 0.
There is only one return path from this function.
Andreas.
-- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE GmbH, Deutschherrnstr. 15-19, D-90429 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |