diff options
| author | pooka <pooka@NetBSD.org> | 2007-07-27 08:26:38 +0000 |
|---|---|---|
| committer | pooka <pooka@NetBSD.org> | 2007-07-27 08:26:38 +0000 |
| commit | 1ce406a846cf4003a7bbdb748d59cd63fe50cd3b (patch) | |
| tree | a3357d8308e3eff954572060675ca832c70dab43 | |
| parent | d9970c80662f0e151adf926f67d8a12272a3a3e5 (diff) | |
Change unused fflags parameter in VOP_MMAP to prot and pass in
desired vm protection.
| -rw-r--r-- | sys/fs/puffs/puffs_msgif.h | 6 | ||||
| -rw-r--r-- | sys/fs/puffs/puffs_vnops.c | 8 | ||||
| -rw-r--r-- | sys/kern/exec_subr.c | 18 | ||||
| -rw-r--r-- | sys/kern/vnode_if.src | 4 | ||||
| -rw-r--r-- | sys/ufs/lfs/lfs_vnops.c | 6 | ||||
| -rw-r--r-- | sys/uvm/uvm_mmap.c | 6 |
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; } |
