Module Name: src Committed By: rin Date: Mon Oct 11 14:25:05 UTC 2021
Modified Files: src/sys/dev: kloader.c Log Message: Switch to kmem(9). To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/dev/kloader.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/dev/kloader.c diff -u src/sys/dev/kloader.c:1.31 src/sys/dev/kloader.c:1.32 --- src/sys/dev/kloader.c:1.31 Mon Oct 11 14:16:43 2021 +++ src/sys/dev/kloader.c Mon Oct 11 14:25:05 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: kloader.c,v 1.31 2021/10/11 14:16:43 rin Exp $ */ +/* $NetBSD: kloader.c,v 1.32 2021/10/11 14:25:05 rin Exp $ */ /*- * Copyright (c) 2001, 2002, 2004 The NetBSD Foundation, Inc. @@ -27,13 +27,13 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kloader.c,v 1.31 2021/10/11 14:16:43 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kloader.c,v 1.32 2021/10/11 14:25:05 rin Exp $"); #include "debug_kloader.h" #include <sys/param.h> #include <sys/fcntl.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <sys/namei.h> #include <sys/proc.h> #include <sys/systm.h> @@ -174,7 +174,7 @@ kloader_load(void) Elf_Addr entry; vaddr_t kv; size_t sz; - size_t shstrsz; + size_t phsz, shsz, shstrsz; char *shstrtab; int symndx, strndx; size_t ksymsz; @@ -199,30 +199,30 @@ kloader_load(void) } /* read program headers */ - sz = eh.e_phentsize * eh.e_phnum; - if ((ph = malloc(sz, M_TEMP, M_NOWAIT)) == NULL) { + phsz = eh.e_phentsize * eh.e_phnum; + if ((ph = kmem_alloc(phsz, KM_NOSLEEP)) == NULL) { PRINTF("can't allocate program header table.\n"); goto err; } - if (kloader_read(eh.e_phoff, sz, ph) != 0) { + if (kloader_read(eh.e_phoff, phsz, ph) != 0) { PRINTF("program header read error.\n"); goto err; } /* read section headers */ - sz = eh.e_shentsize * eh.e_shnum; - if ((sh = malloc(sz, M_TEMP, M_NOWAIT)) == NULL) { + shsz = eh.e_shentsize * eh.e_shnum; + if ((sh = kmem_alloc(shsz, KM_NOSLEEP)) == NULL) { PRINTF("can't allocate section header table.\n"); goto err; } - if (kloader_read(eh.e_shoff, eh.e_shentsize * eh.e_shnum, sh) != 0) { + if (kloader_read(eh.e_shoff, shsz, sh) != 0) { PRINTF("section header read error.\n"); goto err; } /* read section names */ shstrsz = ROUND4(sh[eh.e_shstrndx].sh_size); - shstrtab = malloc(shstrsz, M_TEMP, M_NOWAIT); + shstrtab = kmem_alloc(shstrsz, KM_NOSLEEP); if (shstrtab == NULL) { PRINTF("unable to allocate memory for .shstrtab\n"); goto err; @@ -416,11 +416,11 @@ kloader_load(void) return (0); err: if (ph != NULL) - free(ph, M_TEMP); + kmem_free(ph, phsz); if (sh != NULL) - free(sh, M_TEMP); + kmem_free(sh, shsz); if (shstrtab != NULL) - free(shstrtab, M_TEMP); + kmem_free(shstrtab, shstrsz); return 1; }