From owner-cvs-all Sun Mar 3 21: 7:26 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 30B4E37B402; Sun, 3 Mar 2002 21:07:23 -0800 (PST) Received: (from jake@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g2457Nm52814; Sun, 3 Mar 2002 21:07:23 -0800 (PST) (envelope-from jake) Message-Id: <200203040507.g2457Nm52814@freefall.freebsd.org> From: Jake Burkholder Date: Sun, 3 Mar 2002 21:07:23 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/sparc64/sparc64 vm_machdep.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG jake 2002/03/03 21:07:23 PST Modified files: sys/sparc64/sparc64 vm_machdep.c Log: Fix obscure problems with vfork where part of the parent's stack could be clobbered by the child. This is more complicated than usual because the window that could get clobbered is pushed in kernel mode, so a lot of registers would have to be saved in other registers in userland and we don't have enough. What we do have is space in the pcb to temporarily store user windows that were spilled in kernel mode, but could not be immediately stored to the user stack. So we copy in the parent's topmost window and save it in the pcb, and arrange for it to be copied back out when the child is done frobbing the stack. Reviewed by: tmm Revision Changes Path 1.21 +40 -8 src/sys/sparc64/sparc64/vm_machdep.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message