diff options
| -rw-r--r-- | sys/dev/ksyms/ksyms.c | 7 | ||||
| -rw-r--r-- | sys/dev/xen/gntdev/gntdev.c | 3 | ||||
| -rw-r--r-- | sys/kern/link_elf.c | 3 | ||||
| -rw-r--r-- | sys/kern/link_elf_obj.c | 18 |
4 files changed, 20 insertions, 11 deletions
diff --git a/sys/dev/ksyms/ksyms.c b/sys/dev/ksyms/ksyms.c index 4a2752416763b..6e7b032ea340b 100644 --- a/sys/dev/ksyms/ksyms.c +++ b/sys/dev/ksyms/ksyms.c @@ -41,6 +41,7 @@ #include <sys/proc.h> #include <sys/queue.h> #include <sys/resourcevar.h> +#include <sys/rwlock.h> #include <sys/stat.h> #include <sys/sx.h> #include <sys/uio.h> @@ -51,6 +52,8 @@ #include <vm/vm.h> #include <vm/vm_extern.h> #include <vm/vm_object.h> +#include <vm/vm_page.h> +#include <vm/vm_pager.h> #include "linker_if.h" @@ -442,8 +445,8 @@ ksyms_open(struct cdev *dev, int flags, int fmt __unused, struct thread *td) ksyms_size_calc(&ts); elfsz = sizeof(struct ksyms_hdr) + ts.ts_symsz + ts.ts_strsz; - object = vm_object_allocate(OBJT_PHYS, - OFF_TO_IDX(round_page(elfsz))); + object = vm_pager_allocate(OBJT_PHYS, NULL, round_page(elfsz), + VM_PROT_ALL, 0, td->td_ucred); sc->sc_obj = object; sc->sc_objsz = elfsz; diff --git a/sys/dev/xen/gntdev/gntdev.c b/sys/dev/xen/gntdev/gntdev.c index 63da0467e34d2..8249eaba8bccd 100644 --- a/sys/dev/xen/gntdev/gntdev.c +++ b/sys/dev/xen/gntdev/gntdev.c @@ -1068,7 +1068,8 @@ mmap_gref(struct per_user_data *priv_user, struct gntdev_gref *gref_start, vm_object_t mem_obj; struct gntdev_gref *gref; - mem_obj = vm_object_allocate(OBJT_PHYS, size); + mem_obj = vm_pager_allocate(OBJT_PHYS, NULL, size, VM_PROT_ALL, 0, + curthread->td_ucred); if (mem_obj == NULL) return (ENOMEM); diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c index a9861884c2dc6..ea2bcd268a7f5 100644 --- a/sys/kern/link_elf.c +++ b/sys/kern/link_elf.c @@ -1106,7 +1106,8 @@ link_elf_load_file(linker_class_t cls, const char* filename, ef = (elf_file_t) lf; #ifdef SPARSE_MAPPING - ef->object = vm_object_allocate(OBJT_PHYS, atop(mapsize)); + ef->object = vm_pager_allocate(OBJT_PHYS, NULL, mapsize, VM_PROT_ALL, + 0, thread0.td_ucred); if (ef->object == NULL) { error = ENOMEM; goto out; diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c index 48fcf8337ee98..d23640110387d 100644 --- a/sys/kern/link_elf_obj.c +++ b/sys/kern/link_elf_obj.c @@ -34,16 +34,17 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> #include <sys/systm.h> +#include <sys/fcntl.h> #include <sys/kernel.h> #include <sys/lock.h> #include <sys/malloc.h> +#include <sys/linker.h> #include <sys/mutex.h> #include <sys/mount.h> -#include <sys/proc.h> #include <sys/namei.h> -#include <sys/fcntl.h> +#include <sys/proc.h> +#include <sys/rwlock.h> #include <sys/vnode.h> -#include <sys/linker.h> #include <machine/elf.h> @@ -53,11 +54,13 @@ __FBSDID("$FreeBSD$"); #include <vm/vm.h> #include <vm/vm_param.h> -#include <vm/vm_object.h> -#include <vm/vm_kern.h> -#include <vm/vm_extern.h> #include <vm/pmap.h> +#include <vm/vm_extern.h> +#include <vm/vm_kern.h> #include <vm/vm_map.h> +#include <vm/vm_object.h> +#include <vm/vm_page.h> +#include <vm/vm_pager.h> #include <sys/link_elf.h> @@ -905,7 +908,8 @@ link_elf_load_file(linker_class_t cls, const char *filename, * This stuff needs to be in a single chunk so that profiling etc * can get the bounds and gdb can associate offsets with modules */ - ef->object = vm_object_allocate(OBJT_PHYS, atop(round_page(mapsize))); + ef->object = vm_pager_allocate(OBJT_PHYS, NULL, round_page(mapsize), + VM_PROT_ALL, 0, thread0.td_ucred); if (ef->object == NULL) { error = ENOMEM; goto out; |
