Module Name: src Committed By: jdolecek Date: Sat May 19 11:02:33 UTC 2018
Modified Files: src/sys/uvm: uvm_loan.c uvm_page.c Log Message: detect wraparound when bumping page wire_count and loan_count To generate a diff of this commit: cvs rdiff -u -r1.85 -r1.86 src/sys/uvm/uvm_loan.c cvs rdiff -u -r1.196 -r1.197 src/sys/uvm/uvm_page.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_loan.c diff -u src/sys/uvm/uvm_loan.c:1.85 src/sys/uvm/uvm_loan.c:1.86 --- src/sys/uvm/uvm_loan.c:1.85 Sat Oct 28 00:37:13 2017 +++ src/sys/uvm/uvm_loan.c Sat May 19 11:02:33 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_loan.c,v 1.85 2017/10/28 00:37:13 pgoyette Exp $ */ +/* $NetBSD: uvm_loan.c,v 1.86 2018/05/19 11:02:33 jdolecek Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_loan.c,v 1.85 2017/10/28 00:37:13 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_loan.c,v 1.86 2018/05/19 11:02:33 jdolecek Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -424,6 +424,7 @@ uvm_loananon(struct uvm_faultinfo *ufi, pmap_page_protect(pg, VM_PROT_READ); } pg->loan_count++; + KASSERT(pg->loan_count > 0); /* detect wrap-around */ uvm_pageactivate(pg); mutex_exit(&uvm_pageqlock); **output = pg; Index: src/sys/uvm/uvm_page.c diff -u src/sys/uvm/uvm_page.c:1.196 src/sys/uvm/uvm_page.c:1.197 --- src/sys/uvm/uvm_page.c:1.196 Tue Apr 24 16:35:53 2018 +++ src/sys/uvm/uvm_page.c Sat May 19 11:02:33 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_page.c,v 1.196 2018/04/24 16:35:53 jakllsch Exp $ */ +/* $NetBSD: uvm_page.c,v 1.197 2018/05/19 11:02:33 jdolecek Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.196 2018/04/24 16:35:53 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.197 2018/05/19 11:02:33 jdolecek Exp $"); #include "opt_ddb.h" #include "opt_uvm.h" @@ -1591,6 +1591,7 @@ uvm_pagewire(struct vm_page *pg) uvmexp.wired++; } pg->wire_count++; + KASSERT(pg->wire_count > 0); /* detect wraparound */ } /*