From owner-svn-src-head@FreeBSD.ORG Wed Feb 29 12:44:35 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7859D106564A; Wed, 29 Feb 2012 12:44:35 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4A1BB8FC13; Wed, 29 Feb 2012 12:44:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1TCiZaO027252; Wed, 29 Feb 2012 12:44:35 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1TCiZZi027249; Wed, 29 Feb 2012 12:44:35 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201202291244.q1TCiZZi027249@svn.freebsd.org> From: Olivier Houchard Date: Wed, 29 Feb 2012 12:44:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232295 - in head/sys/arm: mv xscale/i8134x X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Feb 2012 12:44:35 -0000 Author: cognet Date: Wed Feb 29 12:44:34 2012 New Revision: 232295 URL: http://svn.freebsd.org/changeset/base/232295 Log: Make sure we do not provide the page 0 to the VM. It can't handle it properly, because pmap_extract() returns 0 when there's no mapping. PR: arm/154227 MFC after: 1 week Modified: head/sys/arm/mv/mv_machdep.c head/sys/arm/xscale/i8134x/crb_machdep.c Modified: head/sys/arm/mv/mv_machdep.c ============================================================================== --- head/sys/arm/mv/mv_machdep.c Wed Feb 29 12:13:05 2012 (r232294) +++ head/sys/arm/mv/mv_machdep.c Wed Feb 29 12:44:34 2012 (r232295) @@ -287,9 +287,19 @@ physmap_init(void) availmem_regions[i].mr_start + availmem_regions[i].mr_size, availmem_regions[i].mr_size); - phys_avail[j] = availmem_regions[i].mr_start; - phys_avail[j + 1] = availmem_regions[i].mr_start + - availmem_regions[i].mr_size; + /* + * We should not map the page at PA 0x0000000, the VM can't + * handle it, as pmap_extract() == 0 means failure. + */ + if (availmem_regions[i].mr_start > 0 || + availmem_regions[i].mr_size > PAGE_SIZE) { + phys_avail[j] = availmem_regions[i].mr_start; + if (phys_avail[j] == 0) + phys_avail[j] += PAGE_SIZE; + phys_avail[j + 1] = availmem_regions[i].mr_start + + availmem_regions[i].mr_size; + } else + j -= 2; } phys_avail[j] = 0; phys_avail[j + 1] = 0; Modified: head/sys/arm/xscale/i8134x/crb_machdep.c ============================================================================== --- head/sys/arm/xscale/i8134x/crb_machdep.c Wed Feb 29 12:13:05 2012 (r232294) +++ head/sys/arm/xscale/i8134x/crb_machdep.c Wed Feb 29 12:44:34 2012 (r232295) @@ -381,8 +381,8 @@ initarm(void *arg, void *arg2) i = 0; #ifdef ARM_USE_SMALL_ALLOC - phys_avail[i++] = 0x00000000; - phys_avail[i++] = 0x00001000; /* + phys_avail[i++] = 0x00001000; + phys_avail[i++] = 0x00002000; /* *XXX: Gross hack to get our * pages in the vm_page_array . */