Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Dec 2013 16:59:47 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r259951 - head/sys/vm
Message-ID:  <201312271659.rBRGxlHR024301@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Fri Dec 27 16:59:47 2013
New Revision: 259951
URL: http://svnweb.freebsd.org/changeset/base/259951

Log:
  Do not coalesce stack entry, vm_map_stack() asserts that the requested
  region is claimed by a new entry.
  
  Pass MAP_STACK_GROWS_DOWN and MAP_STACK_GROWS_UP flags to
  vm_map_insert() from vm_map_stack(), to really turn off coalescing
  code and call to vm_map_simplify_entry() [1].
  
  Reported by:	avg, peter, many
  Tested by:	avg, peter
  Noted by:	avg [1]
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week

Modified:
  head/sys/vm/vm_map.c

Modified: head/sys/vm/vm_map.c
==============================================================================
--- head/sys/vm/vm_map.c	Fri Dec 27 16:57:38 2013	(r259950)
+++ head/sys/vm/vm_map.c	Fri Dec 27 16:59:47 2013	(r259951)
@@ -1207,6 +1207,7 @@ charged:
 	}
 	else if ((prev_entry != &map->header) &&
 		 (prev_entry->eflags == protoeflags) &&
+		 (cow & (MAP_ENTRY_GROWS_DOWN | MAP_ENTRY_GROWS_UP)) == 0 &&
 		 (prev_entry->end == start) &&
 		 (prev_entry->wired_count == 0) &&
 		 (prev_entry->cred == cred ||
@@ -3339,7 +3340,6 @@ vm_map_stack(vm_map_t map, vm_offset_t a
 	 * NOTE: We explicitly allow bi-directional stacks.
 	 */
 	orient = cow & (MAP_STACK_GROWS_DOWN|MAP_STACK_GROWS_UP);
-	cow &= ~orient;
 	KASSERT(orient != 0, ("No stack grow direction"));
 
 	if (addrbos < vm_map_min(map) ||



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