Module Name: src Committed By: chs Date: Sat Sep 7 19:08:28 UTC 2019
Modified Files: src/sys/miscfs/procfs: procfs_linux.c Log Message: have procfs_do_pid_stat() pass the proc's map to get_proc_size_info(), rather than having the latter look up the map again and not check for an error. To generate a diff of this commit: cvs rdiff -u -r1.75 -r1.76 src/sys/miscfs/procfs/procfs_linux.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/miscfs/procfs/procfs_linux.c diff -u src/sys/miscfs/procfs/procfs_linux.c:1.75 src/sys/miscfs/procfs/procfs_linux.c:1.76 --- src/sys/miscfs/procfs/procfs_linux.c:1.75 Fri Aug 23 14:12:39 2019 +++ src/sys/miscfs/procfs/procfs_linux.c Sat Sep 7 19:08:28 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: procfs_linux.c,v 1.75 2019/08/23 14:12:39 maxv Exp $ */ +/* $NetBSD: procfs_linux.c,v 1.76 2019/09/07 19:08:28 chs Exp $ */ /* * Copyright (c) 2001 Wasabi Systems, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: procfs_linux.c,v 1.75 2019/08/23 14:12:39 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: procfs_linux.c,v 1.76 2019/09/07 19:08:28 chs Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -75,19 +75,15 @@ extern int max_devsw_convs; #define LBFSZ (8 * 1024) static void -get_proc_size_info(struct lwp *l, unsigned long *stext, unsigned long *etext, unsigned long *sstack) +get_proc_size_info(struct proc *p, struct vm_map *map, unsigned long *stext, + unsigned long *etext, unsigned long *sstack) { - struct proc *p = l->l_proc; - struct vmspace *vm; - struct vm_map *map; struct vm_map_entry *entry; *stext = 0; *etext = 0; *sstack = 0; - proc_vmspace_getref(p, &vm); - map = &vm->vm_map; vm_map_lock_read(map); for (entry = map->header.next; entry != &map->header; @@ -128,7 +124,6 @@ get_proc_size_info(struct lwp *l, unsign *sstack -= PAGE_SIZE; vm_map_unlock_read(map); - uvmspace_free(vm); } /* @@ -436,7 +431,7 @@ procfs_do_pid_stat(struct lwp *curl, str goto out; } - get_proc_size_info(l, &stext, &etext, &sstack); + get_proc_size_info(p, &vm->vm_map, &stext, &etext, &sstack); mutex_enter(proc_lock); mutex_enter(p->p_lock);