From d09e93fdffd460846fcac938a285c24fe72d5775 Mon Sep 17 00:00:00 2001 From: Len Brown Date: Fri, 5 Aug 2005 00:49:06 -0400 Subject: [PATCH] --- yaml --- r: 7810 b: refs/heads/master c: c202ac9fbdb64145f034be266d6ee88c98b40aa8 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/i386/Kconfig | 3 ++- trunk/arch/x86_64/ia32/ptrace32.c | 8 ++++---- trunk/kernel/exit.c | 4 +++- trunk/kernel/posix-timers.c | 1 - 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index fdeb1cc74b42..b90919c19629 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4be44fcd3bf648b782f4460fd06dfae6c42ded4b +refs/heads/master: c202ac9fbdb64145f034be266d6ee88c98b40aa8 diff --git a/trunk/arch/i386/Kconfig b/trunk/arch/i386/Kconfig index a801d9d48606..619d843ba231 100644 --- a/trunk/arch/i386/Kconfig +++ b/trunk/arch/i386/Kconfig @@ -454,8 +454,9 @@ config HPET_TIMER Choose N to continue using the legacy 8254 timer. config HPET_EMULATE_RTC - bool "Provide RTC interrupt" + bool depends on HPET_TIMER && RTC=y + default y config SMP bool "Symmetric multi-processing support" diff --git a/trunk/arch/x86_64/ia32/ptrace32.c b/trunk/arch/x86_64/ia32/ptrace32.c index b98b6d2462f6..2a925e2af390 100644 --- a/trunk/arch/x86_64/ia32/ptrace32.c +++ b/trunk/arch/x86_64/ia32/ptrace32.c @@ -43,11 +43,11 @@ static int putreg32(struct task_struct *child, unsigned regno, u32 val) switch (regno) { case offsetof(struct user32, regs.fs): if (val && (val & 3) != 3) return -EIO; - child->thread.fs = val & 0xffff; + child->thread.fsindex = val & 0xffff; break; case offsetof(struct user32, regs.gs): if (val && (val & 3) != 3) return -EIO; - child->thread.gs = val & 0xffff; + child->thread.gsindex = val & 0xffff; break; case offsetof(struct user32, regs.ds): if (val && (val & 3) != 3) return -EIO; @@ -138,10 +138,10 @@ static int getreg32(struct task_struct *child, unsigned regno, u32 *val) switch (regno) { case offsetof(struct user32, regs.fs): - *val = child->thread.fs; + *val = child->thread.fsindex; break; case offsetof(struct user32, regs.gs): - *val = child->thread.gs; + *val = child->thread.gsindex; break; case offsetof(struct user32, regs.ds): *val = child->thread.ds; diff --git a/trunk/kernel/exit.c b/trunk/kernel/exit.c index 9d1b10ed0135..5b0fb9f09f21 100644 --- a/trunk/kernel/exit.c +++ b/trunk/kernel/exit.c @@ -829,8 +829,10 @@ fastcall NORET_TYPE void do_exit(long code) acct_update_integrals(tsk); update_mem_hiwater(tsk); group_dead = atomic_dec_and_test(&tsk->signal->live); - if (group_dead) + if (group_dead) { + del_timer_sync(&tsk->signal->real_timer); acct_process(code); + } exit_mm(tsk); exit_sem(tsk); diff --git a/trunk/kernel/posix-timers.c b/trunk/kernel/posix-timers.c index 10b2ad749d14..38798a2ff994 100644 --- a/trunk/kernel/posix-timers.c +++ b/trunk/kernel/posix-timers.c @@ -1166,7 +1166,6 @@ void exit_itimers(struct signal_struct *sig) tmr = list_entry(sig->posix_timers.next, struct k_itimer, list); itimer_delete(tmr); } - del_timer_sync(&sig->real_timer); } /*