Module Name: src
Committed By: riastradh
Date: Fri Dec 6 19:18:00 UTC 2024
Modified Files:
src/sys/kern: subr_vmem.c
Log Message:
vmem(9): Sprinkle SET_ERROR dtrace probes.
PR kern/58378: Kernel error code origination lacks dtrace probes
To generate a diff of this commit:
cvs rdiff -u -r1.117 -r1.118 src/sys/kern/subr_vmem.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/kern/subr_vmem.c
diff -u src/sys/kern/subr_vmem.c:1.117 src/sys/kern/subr_vmem.c:1.118
--- src/sys/kern/subr_vmem.c:1.117 Fri Dec 6 19:17:44 2024
+++ src/sys/kern/subr_vmem.c Fri Dec 6 19:17:59 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_vmem.c,v 1.117 2024/12/06 19:17:44 riastradh Exp $ */
+/* $NetBSD: subr_vmem.c,v 1.118 2024/12/06 19:17:59 riastradh Exp $ */
/*-
* Copyright (c)2006,2007,2008,2009 YAMAMOTO Takashi,
@@ -46,7 +46,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_vmem.c,v 1.117 2024/12/06 19:17:44 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_vmem.c,v 1.118 2024/12/06 19:17:59 riastradh Exp $");
#if defined(_KERNEL) && defined(_KERNEL_OPT)
#include "opt_ddb.h"
@@ -66,6 +66,7 @@ __KERNEL_RCSID(0, "$NetBSD: subr_vmem.c,
#include <sys/kernel.h> /* hz */
#include <sys/kmem.h>
#include <sys/pool.h>
+#include <sys/sdt.h>
#include <sys/systm.h>
#include <sys/vmem.h>
#include <sys/vmem_impl.h>
@@ -88,6 +89,8 @@ __KERNEL_RCSID(0, "$NetBSD: subr_vmem.c,
#include "../sys/vmem.h"
#include "../sys/vmem_impl.h"
+#define SET_ERROR(E) (E)
+
#endif /* defined(_KERNEL) */
#if defined(_KERNEL)
@@ -289,7 +292,7 @@ bt_refill_locked(vmem_t *vm)
}
if (vm->vm_nfreetags <= BT_MINRESERVE) {
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
if (kmem_meta_arena != NULL) {
@@ -754,12 +757,12 @@ vmem_add1(vmem_t *vm, vmem_addr_t addr,
btspan = bt_alloc(vm, flags);
if (btspan == NULL) {
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
btfree = bt_alloc(vm, flags);
if (btfree == NULL) {
bt_free(vm, btspan);
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
btspan->bt_type = spanbttype;
@@ -818,7 +821,7 @@ vmem_import(vmem_t *vm, vmem_size_t size
VMEM_ASSERT_LOCKED(vm);
if (vm->vm_importfn == NULL) {
- return EINVAL;
+ return SET_ERROR(EINVAL);
}
if (vm->vm_flags & VM_LARGEIMPORT) {
@@ -835,14 +838,14 @@ vmem_import(vmem_t *vm, vmem_size_t size
VMEM_LOCK(vm);
if (rc) {
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
if (vmem_add1(vm, addr, size, flags, BT_TYPE_SPAN) != 0) {
VMEM_UNLOCK(vm);
(*vm->vm_releasefn)(vm->vm_arg, addr, size);
VMEM_LOCK(vm);
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
return 0;
@@ -866,7 +869,7 @@ vmem_rehash(vmem_t *vm, size_t newhashsi
newhashlist =
xmalloc(sizeof(struct vmem_hashlist) * newhashsize, flags);
if (newhashlist == NULL) {
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
for (i = 0; i < newhashsize; i++) {
LIST_INIT(&newhashlist[i]);
@@ -940,7 +943,7 @@ vmem_fit(const bt_t *bt, vmem_size_t siz
end = maxaddr;
}
if (start > end) {
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
start = VMEM_ALIGNUP(start - phase, align) + phase;
@@ -961,7 +964,7 @@ vmem_fit(const bt_t *bt, vmem_size_t siz
*addrp = start;
return 0;
}
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
/* ---- vmem API */
@@ -1140,7 +1143,7 @@ vmem_alloc(vmem_t *vm, vmem_size_t size,
p = pool_cache_get(qc->qc_cache, vmf_to_prf(flags));
if (addrp != NULL)
*addrp = (vmem_addr_t)p;
- error = (p == NULL) ? ENOMEM : 0;
+ error = (p == NULL) ? SET_ERROR(ENOMEM) : 0;
goto out;
}
#endif /* defined(QCACHE) */
@@ -1223,13 +1226,13 @@ vmem_xalloc(vmem_t *vm, const vmem_size_
btnew = bt_alloc(vm, flags);
if (btnew == NULL) {
VMEM_UNLOCK(vm);
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
btnew2 = bt_alloc(vm, flags); /* XXX not necessary if no restrictions */
if (btnew2 == NULL) {
bt_free(vm, btnew);
VMEM_UNLOCK(vm);
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
}
/*
@@ -1320,7 +1323,7 @@ fail:
bt_free(vm, btnew);
bt_free(vm, btnew2);
VMEM_UNLOCK(vm);
- return ENOMEM;
+ return SET_ERROR(ENOMEM);
gotit:
KASSERT(bt->bt_type == BT_TYPE_FREE);