]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit - arch/x86/kernel/cpu/common.c
locking/seqlock, headers: Untangle the spaghetti monster
authorPeter Zijlstra <peterz@infradead.org>
Thu, 6 Aug 2020 12:35:11 +0000 (14:35 +0200)
committerIngo Molnar <mingo@kernel.org>
Thu, 6 Aug 2020 14:13:13 +0000 (16:13 +0200)
commit0cd39f4600ed4de859383018eb10f0f724900e1b
tree9768dea08f4926b702926ef15699413e37932a7c
parentb3545192e2b4647234254c5122f8cbfddbcbdaa0
locking/seqlock, headers: Untangle the spaghetti monster

By using lockdep_assert_*() from seqlock.h, the spaghetti monster
attacked.

Attack back by reducing seqlock.h dependencies from two key high level headers:

 - <linux/seqlock.h>:               -Remove <linux/ww_mutex.h>
 - <linux/time.h>:                  -Remove <linux/seqlock.h>
 - <linux/sched.h>:                 +Add    <linux/seqlock.h>

The price was to add it to sched.h ...

Core header fallout, we add direct header dependencies instead of gaining them
parasitically from higher level headers:

 - <linux/dynamic_queue_limits.h>:  +Add <asm/bug.h>
 - <linux/hrtimer.h>:               +Add <linux/seqlock.h>
 - <linux/ktime.h>:                 +Add <asm/bug.h>
 - <linux/lockdep.h>:               +Add <linux/smp.h>
 - <linux/sched.h>:                 +Add <linux/seqlock.h>
 - <linux/videodev2.h>:             +Add <linux/kernel.h>

Arch headers fallout:

 - PARISC: <asm/timex.h>:           +Add <asm/special_insns.h>
 - SH:     <asm/io.h>:              +Add <asm/page.h>
 - SPARC:  <asm/timer_64.h>:        +Add <uapi/asm/asi.h>
 - SPARC:  <asm/vvar.h>:            +Add <asm/processor.h>, <asm/barrier.h>
                                    -Remove <linux/seqlock.h>
 - X86:    <asm/fixmap.h>:          +Add <asm/pgtable_types.h>
                                    -Remove <asm/acpi.h>

There's also a bunch of parasitic header dependency fallout in .c files, not listed
separately.

[ mingo: Extended the changelog, split up & fixed the original patch. ]

Co-developed-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20200804133438.GK2674@hirez.programming.kicks-ass.net
29 files changed:
arch/sh/include/asm/io.h
arch/sh/kernel/machvec.c
arch/sparc/include/asm/timer_64.h
arch/sparc/include/asm/vvar.h
arch/sparc/kernel/vdso.c
arch/x86/include/asm/fixmap.h
arch/x86/kernel/apic/apic_noop.c
arch/x86/kernel/apic/hw_nmi.c
arch/x86/kernel/apic/probe_64.c
arch/x86/kernel/cpu/amd.c
arch/x86/kernel/cpu/common.c
arch/x86/kernel/cpu/hygon.c
arch/x86/kernel/cpu/intel.c
arch/x86/kernel/jailhouse.c
arch/x86/kernel/tsc_msr.c
arch/x86/mm/init_32.c
arch/x86/xen/apic.c
arch/x86/xen/smp_hvm.c
arch/x86/xen/suspend_pv.c
include/linux/dynamic_queue_limits.h
include/linux/hrtimer.h
include/linux/ktime.h
include/linux/lockdep.h
include/linux/mutex.h
include/linux/sched.h
include/linux/seqlock.h
include/linux/time.h
include/linux/videodev2.h
include/linux/ww_mutex.h