Date: Wed, 18 Apr 2001 20:43:10 +0100 (BST) From: Doug Rabson <dfr@nlsystems.com> To: John Baldwin <jhb@FreeBSD.org> Cc: <cvs-all@FreeBSD.org>, <cvs-committers@FreeBSD.org> Subject: Re: cvs commit: src/sys/alpha/alpha exception.s Message-ID: <Pine.BSF.4.33.0104182039190.55816-100000@salmon.nlsystems.com> In-Reply-To: <XFMail.010418122728.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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? Of course we have to use the kernel stack for all exceptions. The user stack might not even be a valid virtual address. We could raise the IPL before saving or restoring but it just seems like such a hack. I still haven't thought of a better fix though. -- 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.33.0104182039190.55816-100000>