Module Name:    src
Committed By:   riastradh
Date:           Thu Jul 13 12:06:20 UTC 2023

Modified Files:
        src/sys/arch/sparc/include: cpu.h
        src/sys/arch/sparc64/include: cpu.h
        src/sys/arch/x86/include: cpu.h
        src/sys/sys: cpu_data.h sched.h

Log Message:
Break cycle by using `struct kmutex *' instead of `kmutex_t *'.

sys/sched.h included sys/mutex.h
which includes sys/intr.h
which includes machine/intr.h
which on cats includes arm/footbridge/footbridge_intr.h
which includes arm/cpu.h
which includes sys/cpu_data.h
which includes sys/sched.h

But there was never any real need for sys/mutex.h in sys/sched.h,
because it only uses pointers to the opaque struct kmutex.  Cycle
broken by using `struct kmutex *' instead of pulling in sys/mutex.h
for the definition of kmutex_t.

Side effect: This revealed that sys/cpu_data.h needed sys/intr.h
(which was pulled in accidentally by sys/mutex.h via sys/sched.h) for
SOFTINT_COUNT.  Also revealed some other machine/cpu.h header files
were missing includes of sys/mutex.h for kmutex_t.


To generate a diff of this commit:
cvs rdiff -u -r1.110 -r1.111 src/sys/arch/sparc/include/cpu.h
cvs rdiff -u -r1.133 -r1.134 src/sys/arch/sparc64/include/cpu.h
cvs rdiff -u -r1.133 -r1.134 src/sys/arch/x86/include/cpu.h
cvs rdiff -u -r1.53 -r1.54 src/sys/sys/cpu_data.h
cvs rdiff -u -r1.91 -r1.92 src/sys/sys/sched.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/sparc/include/cpu.h
diff -u src/sys/arch/sparc/include/cpu.h:1.110 src/sys/arch/sparc/include/cpu.h:1.111
--- src/sys/arch/sparc/include/cpu.h:1.110	Sat Aug 14 17:51:19 2021
+++ src/sys/arch/sparc/include/cpu.h	Thu Jul 13 12:06:20 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.110 2021/08/14 17:51:19 ryo Exp $ */
+/*	$NetBSD: cpu.h,v 1.111 2023/07/13 12:06:20 riastradh Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -407,6 +407,8 @@ struct cpu_info {
 /* Kernel only things. */
 #if defined(_KERNEL)
 
+#include <sys/mutex.h>
+
 /*
  * definitions of cpu-dependent requirements
  * referenced in generic code

Index: src/sys/arch/sparc64/include/cpu.h
diff -u src/sys/arch/sparc64/include/cpu.h:1.133 src/sys/arch/sparc64/include/cpu.h:1.134
--- src/sys/arch/sparc64/include/cpu.h:1.133	Sat Aug 14 17:51:19 2021
+++ src/sys/arch/sparc64/include/cpu.h	Thu Jul 13 12:06:20 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.133 2021/08/14 17:51:19 ryo Exp $ */
+/*	$NetBSD: cpu.h,v 1.134 2023/07/13 12:06:20 riastradh Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -89,6 +89,7 @@ struct cacheinfo {
 #endif
 
 #include <sys/cpu_data.h>
+#include <sys/mutex.h>
 #include <sys/evcnt.h>
 
 /*

Index: src/sys/arch/x86/include/cpu.h
diff -u src/sys/arch/x86/include/cpu.h:1.133 src/sys/arch/x86/include/cpu.h:1.134
--- src/sys/arch/x86/include/cpu.h:1.133	Wed Sep  7 00:40:18 2022
+++ src/sys/arch/x86/include/cpu.h	Thu Jul 13 12:06:20 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.h,v 1.133 2022/09/07 00:40:18 knakahara Exp $	*/
+/*	$NetBSD: cpu.h,v 1.134 2023/07/13 12:06:20 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1990 The Regents of the University of California.
@@ -65,6 +65,10 @@
 #include <sys/evcnt.h>
 #include <sys/device_if.h> /* for device_t */
 
+#ifdef SVS
+#include <sys/mutex.h>
+#endif
+
 #ifdef XEN
 #include <xen/include/public/xen.h>
 #include <xen/include/public/event_channel.h>

Index: src/sys/sys/cpu_data.h
diff -u src/sys/sys/cpu_data.h:1.53 src/sys/sys/cpu_data.h:1.54
--- src/sys/sys/cpu_data.h:1.53	Fri Jul  7 12:34:50 2023
+++ src/sys/sys/cpu_data.h	Thu Jul 13 12:06:20 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu_data.h,v 1.53 2023/07/07 12:34:50 riastradh Exp $	*/
+/*	$NetBSD: cpu_data.h,v 1.54 2023/07/13 12:06:20 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2004, 2006, 2007, 2008, 2019, 2020 The NetBSD Foundation, Inc.
@@ -44,6 +44,7 @@ struct lwp;
 #include <sys/queue.h>
 #include <sys/kcpuset.h>
 #include <sys/ipi.h>
+#include <sys/intr.h>
 
 /* Per-CPU counters.  New elements must be added in blocks of 8. */
 enum cpu_count {

Index: src/sys/sys/sched.h
diff -u src/sys/sys/sched.h:1.91 src/sys/sys/sched.h:1.92
--- src/sys/sys/sched.h:1.91	Wed Oct 26 23:24:09 2022
+++ src/sys/sys/sched.h	Thu Jul 13 12:06:20 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: sched.h,v 1.91 2022/10/26 23:24:09 riastradh Exp $	*/
+/*	$NetBSD: sched.h,v 1.92 2023/07/13 12:06:20 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000, 2001, 2002, 2007, 2008, 2019, 2020
@@ -142,10 +142,11 @@ __END_DECLS
 
 #if defined(_KERNEL) || defined(_KMEMUSER)
 
-#include <sys/mutex.h>
 #include <sys/time.h>
 #include <sys/queue.h>
 
+struct kmutex;
+
 /*
  * Per-CPU scheduler state.  Field markings and the corresponding locks: 
  *
@@ -155,8 +156,8 @@ __END_DECLS
  * c:	cpu_lock
  */
 struct schedstate_percpu {
-	kmutex_t	*spc_mutex;	/* (: lock on below, runnable LWPs */
-	kmutex_t	*spc_lwplock;	/* (: general purpose lock for LWPs */
+	struct kmutex	*spc_mutex;	/* (: lock on below, runnable LWPs */
+	struct kmutex	*spc_lwplock;	/* (: general purpose lock for LWPs */
 	struct lwp	*spc_migrating;	/* (: migrating LWP */
 	struct cpu_info *spc_nextpkg;	/* (: next package 1st for RR */
 	psetid_t	spc_psid;	/* c: processor-set ID */

Reply via email to