Module Name: src
Committed By: uebayasi
Date: Tue Feb 2 17:40:43 UTC 2010
Modified Files:
src/sys/uvm: uvm_fault.c uvm_loan.c uvm_loan.h
Log Message:
Don't pass an unnecessary reference to uvm_loanbreak_anon().
Requested by rm...@.
To generate a diff of this commit:
cvs rdiff -u -r1.154 -r1.155 src/sys/uvm/uvm_fault.c
cvs rdiff -u -r1.75 -r1.76 src/sys/uvm/uvm_loan.c
cvs rdiff -u -r1.15 -r1.16 src/sys/uvm/uvm_loan.h
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_fault.c
diff -u src/sys/uvm/uvm_fault.c:1.154 src/sys/uvm/uvm_fault.c:1.155
--- src/sys/uvm/uvm_fault.c:1.154 Tue Feb 2 06:52:59 2010
+++ src/sys/uvm/uvm_fault.c Tue Feb 2 17:40:43 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_fault.c,v 1.154 2010/02/02 06:52:59 uebayasi Exp $ */
+/* $NetBSD: uvm_fault.c,v 1.155 2010/02/02 17:40:43 uebayasi Exp $ */
/*
*
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.154 2010/02/02 06:52:59 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.155 2010/02/02 17:40:43 uebayasi Exp $");
#include "opt_uvmhist.h"
@@ -1493,12 +1493,15 @@
/* >1 case is already ok */
if (anon->an_ref == 1) {
- error = uvm_loanbreak_anon(anon, ruobj);
+ error = uvm_loanbreak_anon(anon, *ruobj);
if (error != 0) {
uvmfault_unlockall(ufi, amap, *ruobj, anon);
uvm_wait("flt_noram2");
return ERESTART;
}
+ /* if we were a loan reciever uobj is gone */
+ if (*ruobj)
+ *ruobj = NULL;
}
}
return error;
Index: src/sys/uvm/uvm_loan.c
diff -u src/sys/uvm/uvm_loan.c:1.75 src/sys/uvm/uvm_loan.c:1.76
--- src/sys/uvm/uvm_loan.c:1.75 Tue Feb 2 06:06:02 2010
+++ src/sys/uvm/uvm_loan.c Tue Feb 2 17:40:43 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_loan.c,v 1.75 2010/02/02 06:06:02 uebayasi Exp $ */
+/* $NetBSD: uvm_loan.c,v 1.76 2010/02/02 17:40:43 uebayasi Exp $ */
/*
*
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_loan.c,v 1.75 2010/02/02 06:06:02 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_loan.c,v 1.76 2010/02/02 17:40:43 uebayasi Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1184,7 +1184,7 @@
}
int
-uvm_loanbreak_anon(struct vm_anon *anon, struct uvm_object **ruobj)
+uvm_loanbreak_anon(struct vm_anon *anon, struct uvm_object *uobj)
{
struct vm_page *pg;
@@ -1209,7 +1209,7 @@
/* in case we owned */
anon->an_page->pqflags &= ~PQ_ANON;
- if (*ruobj) {
+ if (uobj) {
/* if we were receiver of loan */
anon->an_page->loan_count--;
} else {
@@ -1220,9 +1220,8 @@
uvm_pagedequeue(anon->an_page);
}
- if (*ruobj) {
- mutex_exit(&(*ruobj)->vmobjlock);
- *ruobj = NULL;
+ if (uobj) {
+ mutex_exit(&uobj->vmobjlock);
}
/* install new page in anon */
Index: src/sys/uvm/uvm_loan.h
diff -u src/sys/uvm/uvm_loan.h:1.15 src/sys/uvm/uvm_loan.h:1.16
--- src/sys/uvm/uvm_loan.h:1.15 Tue Feb 2 06:06:02 2010
+++ src/sys/uvm/uvm_loan.h Tue Feb 2 17:40:43 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_loan.h,v 1.15 2010/02/02 06:06:02 uebayasi Exp $ */
+/* $NetBSD: uvm_loan.h,v 1.16 2010/02/02 17:40:43 uebayasi Exp $ */
/*
*
@@ -56,7 +56,7 @@
int uvm_loanuobjpages(struct uvm_object *, voff_t, int,
struct vm_page **);
struct vm_page *uvm_loanbreak(struct vm_page *);
-int uvm_loanbreak_anon(struct vm_anon *, struct uvm_object **);
+int uvm_loanbreak_anon(struct vm_anon *, struct uvm_object *);
#endif /* _KERNEL */