From owner-cvs-all Wed Jan 30 9:47:23 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 5036137B404; Wed, 30 Jan 2002 09:47:14 -0800 (PST) Received: (from bde@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g0UHlEs29212; Wed, 30 Jan 2002 09:47:14 -0800 (PST) (envelope-from bde) Message-Id: <200201301747.g0UHlEs29212@freefall.freebsd.org> From: Bruce Evans Date: Wed, 30 Jan 2002 09:47:13 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/i386/i386 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 bde 2002/01/30 09:47:13 PST Modified files: sys/i386/i386 machdep.c Log: Cleaned up the 0ldSiG magic check before removing it. Just use fuword() to fetch the magic word instead of useracc() plus a direct access. This is more efficient as well as simpler and less incorrect: - it was inefficent because useracc() takes much longer than just accessing the data using a correct access method, at least on i386's. - it was incorrect because direct access is incorrect unless the address has been mapped. This and nearby direct accesses are mostly handled better for other arches because they have to be (direct accesses don't work). - using magic in sigreturn is still fundamentally broken because false matches are possible. On i386's, a false match occurs when %eip in a new signal context happens to equal the magic value. This is not handled better for other arches. Revision Changes Path 1.489 +8 -13 src/sys/i386/i386/machdep.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message