From owner-cvs-all Thu Feb 22 15:17:22 2001 Delivered-To: cvs-all@freebsd.org Received: from meow.osd.bsdi.com (meow.osd.bsdi.com [204.216.28.88]) by hub.freebsd.org (Postfix) with ESMTP id 97B6737B491; Thu, 22 Feb 2001 15:17:14 -0800 (PST) (envelope-from jhb@FreeBSD.org) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by meow.osd.bsdi.com (8.11.2/8.11.2) with ESMTP id f1MNEdl07626; Thu, 22 Feb 2001 15:14:41 -0800 (PST) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200102222128.f1MLSS119499@gratis.grondar.za> Date: Thu, 22 Feb 2001 15:16:41 -0800 (PST) From: John Baldwin To: Mark Murray Subject: Re: cvs commit: src/sys/i386/i386 trap.c Cc: cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 22-Feb-01 Mark Murray wrote: >> 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. > > Does this fix any intersting panics? I have a (patched) kernel that > panics (GPF) in doreti. Is this inspired by anything of that ilk? I'm not sure.. :-/ It might. > M > -- > Mark Murray > Warning: this .sig is umop ap!sdn -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message