Module Name: src
Committed By: ad
Date: Mon Oct 2 21:03:55 UTC 2023
Modified Files:
src/sys/kern: kern_mutex_obj.c kern_rwlock_obj.c
Log Message:
Use kmem_intr_*() variants for lock objects since aiodoned was done away
with and we process these I/Os in soft interrupt context now.
To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/kern/kern_mutex_obj.c
cvs rdiff -u -r1.12 -r1.13 src/sys/kern/kern_rwlock_obj.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/kern_mutex_obj.c
diff -u src/sys/kern/kern_mutex_obj.c:1.14 src/sys/kern/kern_mutex_obj.c:1.15
--- src/sys/kern/kern_mutex_obj.c:1.14 Sat Sep 23 18:21:11 2023
+++ src/sys/kern/kern_mutex_obj.c Mon Oct 2 21:03:55 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_mutex_obj.c,v 1.14 2023/09/23 18:21:11 ad Exp $ */
+/* $NetBSD: kern_mutex_obj.c,v 1.15 2023/10/02 21:03:55 ad Exp $ */
/*-
* Copyright (c) 2008, 2019, 2023 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_mutex_obj.c,v 1.14 2023/09/23 18:21:11 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_mutex_obj.c,v 1.15 2023/10/02 21:03:55 ad Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -57,7 +57,7 @@ mutex_obj_alloc(kmutex_type_t type, int
{
struct kmutexobj *mo;
- mo = kmem_alloc(sizeof(*mo), KM_SLEEP);
+ mo = kmem_intr_alloc(sizeof(*mo), KM_SLEEP);
KASSERT(ALIGNED_POINTER(mo, coherency_unit));
_mutex_init(&mo->mo_lock, type, ipl,
(uintptr_t)__builtin_return_address(0));
@@ -77,7 +77,7 @@ mutex_obj_tryalloc(kmutex_type_t type, i
{
struct kmutexobj *mo;
- mo = kmem_alloc(sizeof(*mo), KM_NOSLEEP);
+ mo = kmem_intr_alloc(sizeof(*mo), KM_NOSLEEP);
KASSERT(ALIGNED_POINTER(mo, coherency_unit));
if (__predict_true(mo != NULL)) {
_mutex_init(&mo->mo_lock, type, ipl,
@@ -134,7 +134,7 @@ mutex_obj_free(kmutex_t *lock)
}
membar_acquire();
mutex_destroy(&mo->mo_lock);
- kmem_free(mo, sizeof(*mo));
+ kmem_intr_free(mo, sizeof(*mo));
return true;
}
Index: src/sys/kern/kern_rwlock_obj.c
diff -u src/sys/kern/kern_rwlock_obj.c:1.12 src/sys/kern/kern_rwlock_obj.c:1.13
--- src/sys/kern/kern_rwlock_obj.c:1.12 Sat Sep 23 18:21:11 2023
+++ src/sys/kern/kern_rwlock_obj.c Mon Oct 2 21:03:55 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_rwlock_obj.c,v 1.12 2023/09/23 18:21:11 ad Exp $ */
+/* $NetBSD: kern_rwlock_obj.c,v 1.13 2023/10/02 21:03:55 ad Exp $ */
/*-
* Copyright (c) 2008, 2009, 2019, 2023 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_rwlock_obj.c,v 1.12 2023/09/23 18:21:11 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_rwlock_obj.c,v 1.13 2023/10/02 21:03:55 ad Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -57,7 +57,7 @@ rw_obj_alloc(void)
{
struct krwobj *ro;
- ro = kmem_alloc(sizeof(*ro), KM_SLEEP);
+ ro = kmem_intr_alloc(sizeof(*ro), KM_SLEEP);
KASSERT(ALIGNED_POINTER(ro, coherency_unit));
_rw_init(&ro->ro_lock, (uintptr_t)__builtin_return_address(0));
ro->ro_magic = RW_OBJ_MAGIC;
@@ -76,7 +76,7 @@ rw_obj_tryalloc(void)
{
struct krwobj *ro;
- ro = kmem_alloc(sizeof(*ro), KM_NOSLEEP);
+ ro = kmem_intr_alloc(sizeof(*ro), KM_NOSLEEP);
KASSERT(ALIGNED_POINTER(ro, coherency_unit));
if (__predict_true(ro != NULL)) {
_rw_init(&ro->ro_lock, (uintptr_t)__builtin_return_address(0));
@@ -124,7 +124,7 @@ rw_obj_free(krwlock_t *lock)
}
membar_acquire();
rw_destroy(&ro->ro_lock);
- kmem_free(ro, sizeof(*ro));
+ kmem_intr_free(ro, sizeof(*ro));
return true;
}