From owner-svn-src-all@FreeBSD.ORG Tue Jul 15 17:16:06 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 93B97D46; Tue, 15 Jul 2014 17:16:06 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 80B552DC3; Tue, 15 Jul 2014 17:16:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6FHG6lq090153; Tue, 15 Jul 2014 17:16:06 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6FHG6um090152; Tue, 15 Jul 2014 17:16:06 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201407151716.s6FHG6um090152@svn.freebsd.org> From: Alan Cox Date: Tue, 15 Jul 2014 17:16:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268693 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jul 2014 17:16:06 -0000 Author: alc Date: Tue Jul 15 17:16:06 2014 New Revision: 268693 URL: http://svnweb.freebsd.org/changeset/base/268693 Log: Actually set the "no execute" bit on 1 MB page mappings in pmap_protect(). Previously, the "no execute" bit was being set directly in the PTE, instead of the local variable in which the new PTE value is being constructed. So, when the local variable was finally assigned to the PTE, the "no execute" bit setting was lost. Modified: head/sys/arm/arm/pmap-v6.c Modified: head/sys/arm/arm/pmap-v6.c ============================================================================== --- head/sys/arm/arm/pmap-v6.c Tue Jul 15 17:14:53 2014 (r268692) +++ head/sys/arm/arm/pmap-v6.c Tue Jul 15 17:16:06 2014 (r268693) @@ -2846,7 +2846,7 @@ pmap_protect(pmap_t pmap, vm_offset_t sv eva >= next_bucket) { l1pd &= ~(L1_S_PROT_MASK | L1_S_XN); if (!(prot & VM_PROT_EXECUTE)) - *pl1pd |= L1_S_XN; + l1pd |= L1_S_XN; /* * At this point we are always setting * write-protect bit.