Re: [PATCH] Re: 2.6.12: itimer_real timers don't survive execve()any more

From: Andrew Morton
Date: Thu Aug 04 2005 - 16:42:50 EST


George Anzinger <george@xxxxxxxxxx> wrote:
>
> Source: MontaVista Software, Inc. George Anzinger <george@xxxxxxxxxx>
> Type: Defect Fix
> Description:
>
> The changes to itimer of late (after 2.6.11) cause itimers not
> to survive the exec* calls. Standard says they should.
>
> Signed-off-by: George Anzinger<george@xxxxxxxxxx>
>
> exit.c | 1 +
> posix-timers.c | 4 ++--
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
>
> Index: linux-2.6.13-rc/kernel/exit.c
> ===================================================================
> --- linux-2.6.13-rc.orig/kernel/exit.c
> +++ linux-2.6.13-rc/kernel/exit.c
> @@ -794,6 +794,7 @@ fastcall NORET_TYPE void do_exit(long co
> }
>
> tsk->flags |= PF_EXITING;
> + del_timer_sync(&tsk->signal->real_timer);
>
> /*
> * Make sure we don't try to process any timer firings
> Index: linux-2.6.13-rc/kernel/posix-timers.c
> ===================================================================
> --- linux-2.6.13-rc.orig/kernel/posix-timers.c
> +++ linux-2.6.13-rc/kernel/posix-timers.c
> @@ -1183,10 +1183,10 @@ void exit_itimers(struct signal_struct *
> struct k_itimer *tmr;
>
> while (!list_empty(&sig->posix_timers)) {
> - tmr = list_entry(sig->posix_timers.next, struct k_itimer, list);
> + tmr = list_entry(sig->posix_timers.next,
> + struct k_itimer, list);
> itimer_delete(tmr);
> }
> - del_timer_sync(&sig->real_timer);
> }

Yup, that's the one, thanks George.

Obvious though it is, I'll hold off on forwarding this Linuswards until
Gerd has had a chance to test it. Or did you run Gerd's test app?

-
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/