Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Feb 2001 13:04:18 -0800
From:      Jordan Hubbard <jkh@winston.osd.bsdi.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/i386/i386 trap.c 
Message-ID:  <54312.982875858@winston.osd.bsdi.com>
In-Reply-To: Message from John Baldwin <jhb@FreeBSD.org>  of "Thu, 22 Feb 2001 11:35:21 PST." <200102221935.f1MJZLx89084@freefall.freebsd.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
This is one of the most impressive code to commit message size ratios
I've ever seen. ;-)

- Jordan

> jhb         2001/02/22 11:35:21 PST
> 
>   Modified files:
>     sys/i386/i386        trap.c 
>   Log:
>   The p_md.md_regs member of proc is used in signal handling to reference
>   the the original trapframe of the syscall, trap, or interrupt that entered
>   the kernel.  Before SMPng, ast's were handled via a psuedo trap at the
>   end of doerti.  With the SMPng commit, ast's were broken out into a
>   separate ast() function that was called from doreti to match the behavior
>   of other architectures.  Unfortunately, when this was done, the
>   p_md.md_regs member of curproc was not updateda in ast(), thus when
>   signals are handled by userret() after an interrupt that returns to
>   userland, we end up using a stale trapframe that will result in the
>   registers from the old trapframe overwriting the real trapframe and
>   smashing all the registers right before we return to usermode.  The saved
>   %cs:%eip from where we were in usermode are saved in the trapframe for
>   example.
>   
>   Revision  Changes    Path
>   1.181     +2 -1      src/sys/i386/i386/trap.c
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54312.982875858>