Module Name: src Committed By: rmind Date: Fri Jun 24 01:48:43 UTC 2011
Modified Files: src/sys/uvm: uvm_amap.c Log Message: amap_copy: fix one more regression, thanks to enami@. To generate a diff of this commit: cvs rdiff -u -r1.98 -r1.99 src/sys/uvm/uvm_amap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/uvm/uvm_amap.c diff -u src/sys/uvm/uvm_amap.c:1.98 src/sys/uvm/uvm_amap.c:1.99 --- src/sys/uvm/uvm_amap.c:1.98 Fri Jun 24 01:39:22 2011 +++ src/sys/uvm/uvm_amap.c Fri Jun 24 01:48:43 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_amap.c,v 1.98 2011/06/24 01:39:22 rmind Exp $ */ +/* $NetBSD: uvm_amap.c,v 1.99 2011/06/24 01:48:43 rmind Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_amap.c,v 1.98 2011/06/24 01:39:22 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_amap.c,v 1.99 2011/06/24 01:48:43 rmind Exp $"); #include "opt_uvmhist.h" @@ -818,7 +818,11 @@ UVMHIST_LOG(maphist, "<- done [creating new amap 0x%x->0x%x]", entry->start, entry->end, 0, 0); - /* Allocate an initialised amap and install it. */ + /* + * Allocate an initialised amap and install it. + * Note: we must update the length after clipping. + */ + len = entry->end - entry->start; entry->aref.ar_pageoff = 0; entry->aref.ar_amap = amap_alloc(len, 0, waitf); if (entry->aref.ar_amap != NULL) {