From owner-cvs-all Wed Apr 18 12:46:18 2001 Delivered-To: cvs-all@freebsd.org Received: from finch-post-12.mail.demon.net (finch-post-12.mail.demon.net [194.217.242.41]) by hub.freebsd.org (Postfix) with ESMTP id 7B08237B422; Wed, 18 Apr 2001 12:46:11 -0700 (PDT) (envelope-from dfr@nlsystems.com) Received: from [62.49.251.130] (helo=herring.nlsystems.com) by finch-post-12.mail.demon.net with esmtp (Exim 2.12 #1) id 14pxty-0005Wd-0C; Wed, 18 Apr 2001 19:46:10 +0000 Received: from salmon.nlsystems.com (salmon [10.0.0.3]) by herring.nlsystems.com (8.11.2/8.11.2) with ESMTP id f3IJir787144; Wed, 18 Apr 2001 20:44:53 +0100 (BST) (envelope-from dfr@nlsystems.com) Date: Wed, 18 Apr 2001 20:44:53 +0100 (BST) From: Doug Rabson To: John Baldwin Cc: , Subject: Re: cvs commit: src/sys/alpha/alpha exception.s In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Wed, 18 Apr 2001, John Baldwin wrote: > > On 18-Apr-01 Doug Rabson wrote: > > On Wed, 18 Apr 2001, John Baldwin wrote: > > > >> jhb 2001/04/18 10:17:55 PDT > >> > >> Modified files: > >> sys/alpha/alpha exception.s > >> Log: > >> Back out the previous revision as it causes random sig 11's to userland > >> processes until a better fix is found. > > > > I can see several possible races here. For instance, if an interrupt > > happened partway through restoring registers trying to return to userland, > > we could corrupt the user's t7 pretty easily. > > > > I can't quite think of the correct solution yet though. > > Oh, we share the same stack frame for user and kernel returns? Oh yuck. > I can hack around that by raising the IPL in Lkernelret before changing t7, but > if we use the same stackframe how do interrupts in the kernel work at all w/o > trashing the user frame? Also, its safe to take interrupts on the same stack since the interrupt frame will simply be written to a lower address on the stack. -- Doug Rabson Mail: dfr@nlsystems.com Phone: +44 20 8348 6160 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message