Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 02 Jan 2016 15:36:46 -0700
From:      Ian Lepore <ian@freebsd.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r293063 - head/sys/arm/arm
Message-ID:  <1451774206.1369.109.camel@freebsd.org>
In-Reply-To: <201601022231.u02MVEb5037283@repo.freebsd.org>
References:  <201601022231.u02MVEb5037283@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 2016-01-02 at 22:31 +0000, Ian Lepore wrote:
> Author: ian
> Date: Sat Jan  2 22:31:14 2016
> New Revision: 293063
> URL: https://svnweb.freebsd.org/changeset/base/293063
> 
> Log:
>   Work around problems that happen when there is ram at the end of the
>   physical address space.
> 
> Modified:
>   head/sys/arm/arm/physmem.c
> 
> Modified: head/sys/arm/arm/physmem.c
> ==============================================================================
> --- head/sys/arm/arm/physmem.c> 	> Sat Jan  2 22:04:37 2016> 	> (r293062)
> +++ head/sys/arm/arm/physmem.c> 	> Sat Jan  2 22:31:14 2016> 	> (r293063)
> @@ -280,10 +280,24 @@ arm_physmem_hardware_region(vm_paddr_t p
>  > 	> /*
>  > 	>  * Filter out the page at PA 0x00000000.  The VM can't handle it, as
>  > 	>  * pmap_extract() == 0 means failure.
> +> 	>  *
> +> 	>  * Also filter out the page at the end of the physical address space --
> +> 	>  * if addr is non-zero and addr+size is zero that means we wrapped to
> +> 	>  * the next byte beyond what vm_paddr_t can express.  The calculations
> +> 	>  * in vm_page_startup() are going to have the same problem, so just work
> +> 	>  * around it by leaving the last page out.
> +> 	>  *
> +> 	>  * XXX This just in:  subtract out a whole megabyte, not just 1 page.
> +> 	>  * Reducing the size by anything less than 1MB results in a NULL pointer
> +> 	>  * deref in _vm_map_lock_read() very early in startup.  Better to give
> +> 	>  * up a whole megabyte than leave some folks with an unusable system
> +> 	>  * while we investigate.
>  > 	>  */
>  > 	> if (pa == 0) {
>  > 	> 	> pa  = PAGE_SIZE;
>  > 	> 	> sz -= PAGE_SIZE;
> +> 	> } else if (pa + sz == 0) {
> +> 	> 	> sz -= 1024 * 1024;
>  > 	> }
>  
>  > 	> /*
> 

Bah.  This is not what I intended to commit, I was going to reword that
comment block to better match what I found while testing.  I was
editing the commit message when I decided to do that, so I hit ^C in
the shell that was waiting for me to finish editing in emacs, and to my
surprise it sent the commit instead of cancelling.  What's the right
way to change your mind at this late stage of a commit?

-- Ian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1451774206.1369.109.camel>