From owner-p4-projects@FreeBSD.ORG Sat May 31 11:32:58 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 714E537B404; Sat, 31 May 2003 11:32:57 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0FAC537B401 for ; Sat, 31 May 2003 11:32:57 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id ADBED43F85 for ; Sat, 31 May 2003 11:32:56 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4VIWu0U013763 for ; Sat, 31 May 2003 11:32:56 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4VIWuoR013760 for perforce@freebsd.org; Sat, 31 May 2003 11:32:56 -0700 (PDT) Date: Sat, 31 May 2003 11:32:56 -0700 (PDT) Message-Id: <200305311832.h4VIWuoR013760@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 32185 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 May 2003 18:32:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=32185 Change 32185 by marcel@marcel_nfs on 2003/05/31 11:32:38 Page faults that happen by code running in the gateway page should not be treated as kernel faults, but as user faults. We operate on user manipulated addresses here (signal trampolines). Since the gateway page is the only kernel code running with user privileges, avoid a VA range check and simply check the privilege level. Affected files ... .. //depot/projects/ia64/sys/ia64/ia64/trap.c#54 edit Differences ... ==== //depot/projects/ia64/sys/ia64/ia64/trap.c#54 (text+ko) ==== @@ -696,7 +696,13 @@ goto out; no_fault_in: - if (!user) { + /* + * Additionally check the privilege level. We don't want to + * panic when we're in the gateway page, running at user + * level. + */ + if (!user && (framep->tf_special.psr & IA64_PSR_CPL) + == IA64_PSR_CPL_KERN) { /* Check for copyin/copyout fault. */ if (td != NULL && td->td_pcb->pcb_onfault != 0) { framep->tf_special.iip =