From owner-cvs-all Mon Jan 7 21:37:56 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 489EB37B404; Mon, 7 Jan 2002 21:37:52 -0800 (PST) Received: (from jake@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g085bqt38011; Mon, 7 Jan 2002 21:37:52 -0800 (PST) (envelope-from jake) Message-Id: <200201080537.g085bqt38011@freefall.freebsd.org> From: Jake Burkholder Date: Mon, 7 Jan 2002 21:37:52 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/sparc64/sparc64 exception.s 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/01/07 21:37:52 PST Modified files: sys/sparc64/sparc64 exception.s Log: Setup the normal global pcb register as well on entry from user land. Call critical_enter/critical_exit around (fast) interrupt handlers. All non-threaded interrupts are fast, and the threaded interrupt scheduler is itself a fast interrupt. Assert that an interrupt handler we are about to call is non-zero. Be paranoid about restoring the users global registers. Do it as the last thing before switching to alternate globals (when we magically get our preloaded registers back), and do it with interrupts disabled. Any kind of kernel trap when the globals are not setup properly is bad news. Don't save and restore the kernel g6, it invariably points to the current pcb now. Revision Changes Path 1.24 +58 -46 src/sys/sparc64/sparc64/exception.s To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message