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