summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpooka <pooka@NetBSD.org>2007-07-27 08:26:38 +0000
committerpooka <pooka@NetBSD.org>2007-07-27 08:26:38 +0000
commit1ce406a846cf4003a7bbdb748d59cd63fe50cd3b (patch)
treea3357d8308e3eff954572060675ca832c70dab43
parentd9970c80662f0e151adf926f67d8a12272a3a3e5 (diff)
Change unused fflags parameter in VOP_MMAP to prot and pass in
desired vm protection.
-rw-r--r--sys/fs/puffs/puffs_msgif.h6
-rw-r--r--sys/fs/puffs/puffs_vnops.c8
-rw-r--r--sys/kern/exec_subr.c18
-rw-r--r--sys/kern/vnode_if.src4
-rw-r--r--sys/ufs/lfs/lfs_vnops.c6
-rw-r--r--sys/uvm/uvm_mmap.c6
6 files changed, 24 insertions, 24 deletions
diff --git a/sys/fs/puffs/puffs_msgif.h b/sys/fs/puffs/puffs_msgif.h
index ec844cfb3c0..5a5c4309203 100644
--- a/sys/fs/puffs/puffs_msgif.h
+++ b/sys/fs/puffs/puffs_msgif.h
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_msgif.h,v 1.44 2007/07/19 07:52:45 pooka Exp $ */
+/* $NetBSD: puffs_msgif.h,v 1.45 2007/07/27 08:26:39 pooka Exp $ */
/*
* Copyright (c) 2005, 2006 Antti Kantee. All Rights Reserved.
@@ -83,7 +83,7 @@ enum {
#define PUFFS_VN_MAX PUFFS_VN_SETEXTATTR
#define PUFFSDEVELVERS 0x80000000
-#define PUFFSVERSION 15
+#define PUFFSVERSION 16
#define PUFFSNAMESIZE 32
#define PUFFS_TYPELEN (_VFS_NAMELEN - (sizeof(PUFFS_TYPEPREFIX)+1))
@@ -691,7 +691,7 @@ struct puffs_vnreq_advlock {
struct puffs_vnreq_mmap {
struct puffs_req pvn_pr;
- int pvnr_fflags; /* OUT */
+ vm_prot_t pvnr_prot; /* OUT */
struct puffs_kcred pvnr_cred; /* OUT */
struct puffs_kcid pvnr_cid; /* OUT */
};
diff --git a/sys/fs/puffs/puffs_vnops.c b/sys/fs/puffs/puffs_vnops.c
index a2f56e9e9ed..9a662923c88 100644
--- a/sys/fs/puffs/puffs_vnops.c
+++ b/sys/fs/puffs/puffs_vnops.c
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_vnops.c,v 1.91 2007/07/22 18:59:00 pooka Exp $ */
+/* $NetBSD: puffs_vnops.c,v 1.92 2007/07/27 08:26:39 pooka Exp $ */
/*
* Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.91 2007/07/22 18:59:00 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.92 2007/07/27 08:26:39 pooka Exp $");
#include <sys/param.h>
#include <sys/fstrans.h>
@@ -2092,7 +2092,7 @@ puffs_mmap(void *v)
struct vop_mmap_args /* {
const struct vnodeop_desc *a_desc;
struct vnode *a_vp;
- int a_fflags;
+ vm_prot_t a_prot;
kauth_cred_t a_cred;
struct lwp *a_l;
} */ *ap = v;
@@ -2107,7 +2107,7 @@ puffs_mmap(void *v)
return genfs_eopnotsupp(v);
if (EXISTSOP(pmp, MMAP)) {
- mmap_arg.pvnr_fflags = ap->a_fflags;
+ mmap_arg.pvnr_prot = ap->a_prot;
puffs_credcvt(&mmap_arg.pvnr_cred, ap->a_cred);
puffs_cidcvt(&mmap_arg.pvnr_cid, ap->a_l);
diff --git a/sys/kern/exec_subr.c b/sys/kern/exec_subr.c
index 696ccd62ba1..c9ca84a3ba0 100644
--- a/sys/kern/exec_subr.c
+++ b/sys/kern/exec_subr.c
@@ -1,4 +1,4 @@
-/* $NetBSD: exec_subr.c,v 1.53 2007/07/22 19:16:04 pooka Exp $ */
+/* $NetBSD: exec_subr.c,v 1.54 2007/07/27 08:26:38 pooka Exp $ */
/*
* Copyright (c) 1993, 1994, 1996 Christopher G. Demetriou
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: exec_subr.c,v 1.53 2007/07/22 19:16:04 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: exec_subr.c,v 1.54 2007/07/27 08:26:38 pooka Exp $");
#include "opt_pax.h"
@@ -175,11 +175,17 @@ vmcmd_map_pagedvn(struct lwp *l, struct exec_vmcmd *cmd)
if (cmd->ev_len & PAGE_MASK)
return(EINVAL);
+ prot = cmd->ev_prot;
+ maxprot = UVM_PROT_ALL;
+#ifdef PAX_MPROTECT
+ pax_mprotect(l, &prot, &maxprot);
+#endif /* PAX_MPROTECT */
+
/*
* check the file system's opinion about mmapping the file
*/
- error = VOP_MMAP(vp, 0, p->p_cred, l);
+ error = VOP_MMAP(vp, prot, p->p_cred, l);
if (error)
return error;
@@ -191,12 +197,6 @@ vmcmd_map_pagedvn(struct lwp *l, struct exec_vmcmd *cmd)
VOP_UNLOCK(vp, 0);
}
- prot = cmd->ev_prot;
- maxprot = UVM_PROT_ALL;
-#ifdef PAX_MPROTECT
- pax_mprotect(l, &prot, &maxprot);
-#endif /* PAX_MPROTECT */
-
/*
* do the map, reference the object for this map entry
*/
diff --git a/sys/kern/vnode_if.src b/sys/kern/vnode_if.src
index f0f4860d2c9..6f561f427fb 100644
--- a/sys/kern/vnode_if.src
+++ b/sys/kern/vnode_if.src
@@ -1,4 +1,4 @@
-# $NetBSD: vnode_if.src,v 1.53 2007/07/22 21:26:53 pooka Exp $
+# $NetBSD: vnode_if.src,v 1.54 2007/07/27 08:26:38 pooka Exp $
#
# Copyright (c) 1992, 1993
# The Regents of the University of California. All rights reserved.
@@ -236,7 +236,7 @@ vop_revoke {
#
vop_mmap {
IN struct vnode *vp;
- IN int fflags;
+ IN vm_prot_t prot;
IN kauth_cred_t cred;
IN struct lwp *l;
};
diff --git a/sys/ufs/lfs/lfs_vnops.c b/sys/ufs/lfs/lfs_vnops.c
index 2de762b4d06..7e2171a41c2 100644
--- a/sys/ufs/lfs/lfs_vnops.c
+++ b/sys/ufs/lfs/lfs_vnops.c
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs_vnops.c,v 1.208 2007/07/10 23:06:24 perseant Exp $ */
+/* $NetBSD: lfs_vnops.c,v 1.209 2007/07/27 08:26:39 pooka Exp $ */
/*-
* Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.208 2007/07/10 23:06:24 perseant Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.209 2007/07/27 08:26:39 pooka Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -2439,7 +2439,7 @@ lfs_mmap(void *v)
struct vop_mmap_args /* {
const struct vnodeop_desc *a_desc;
struct vnode *a_vp;
- int a_fflags;
+ vm_prot_t a_prot;
kauth_cred_t a_cred;
struct lwp *a_l;
} */ *ap = v;
diff --git a/sys/uvm/uvm_mmap.c b/sys/uvm/uvm_mmap.c
index 9adfd3e96a0..c8744c539c0 100644
--- a/sys/uvm/uvm_mmap.c
+++ b/sys/uvm/uvm_mmap.c
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_mmap.c,v 1.113 2007/07/22 19:16:06 pooka Exp $ */
+/* $NetBSD: uvm_mmap.c,v 1.114 2007/07/27 08:26:38 pooka Exp $ */
/*
* Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -51,7 +51,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_mmap.c,v 1.113 2007/07/22 19:16:06 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_mmap.c,v 1.114 2007/07/27 08:26:38 pooka Exp $");
#include "opt_compat_netbsd.h"
#include "opt_pax.h"
@@ -1113,7 +1113,7 @@ uvm_mmap(map, addr, size, prot, maxprot, flags, handle, foff, locklimit)
return (EACCES);
if (vp->v_type != VCHR) {
- error = VOP_MMAP(vp, 0, curlwp->l_cred, curlwp);
+ error = VOP_MMAP(vp, prot, curlwp->l_cred, curlwp);
if (error) {
return error;
}