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 */