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;
 }
 

Reply via email to