Re: [PATCH 3/4] signalfd: fix interaction with posix-timers

From: Oleg Nesterov
Date: Mon Aug 13 2007 - 09:07:37 EST


On 08/12, Roland McGrath wrote:
>
> This only affects signalfd and so the core change seems ok vs status quo.
>
> I think it would be better overall not to have anyone like signalfd calling
> dequeue_signal in its current form at all. (The function is too much an
> internal piece of the core signals code. The SIGNAL_STOP_DEQUEUED code
> applying for signalfd calls is probably another problem, for example.)

I agree, the "tsk != current" case is not nice. We can forbid fetching
signals from another thread group and remove it, this is very easy.
Until then, we can't avoid it without the code duplication.

But SIGNAL_STOP_DEQUEUED code should be OK, afaics. We only need it to
make sure do_signal_stop() can't miss SIGNAL_STOP_CONTINUED/GROUP_EXIT.

Can't we remove SIGNAL_STOP_DEQUEUED, btw?

dequeue_signal:

if (sig_kernel_stop(sig))
->flags &= ~SIGNAL_STOP_CONTINUED;

do_signal_stop:

if (flags & (SIGNAL_STOP_CONTINUED | SIGNAL_GROUP_EXIT))
return 0;

Possible?

Oleg.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/