From: Nuno Das Neves <nunodasneves@xxxxxxxxxxxxxxxxxxx> Sent: Thursday, October 3, 2024 12:51 PM > > asm/hyperv-tlfs.h is already included implicitly wherever mshyperv.h > or linux/hyperv.h is included. Remove those redundancies. I've been under the impression that it is preferable to directly include .h files for all definitions that a source code file uses, even if the needed .h file is indirectly included by some other .h file. I looked through the coding style documentation, and didn't find anything addressing this topic, so maybe I'm wrong. But I know I've seen patches to other parts of the kernel that were changes to follow the direct inclusion approach. Direct inclusion is less fragile if the #include file nesting structure changes (and perhaps removes the indirect inclusion). The mshyperv.h and linux/hyperv.h dependency on hyperv-tlfs.h is highly unlikely to change, so the chance of breakage is minimal. But I wonder if your approach is going the wrong direction vs. preferred kernel practices. Michael > > Remove includes of linux/hyperv.h and mshyperv.h where they are not > needed. > > Signed-off-by: Nuno Das Neves <nunodasneves@xxxxxxxxxxxxxxxxxxx> > --- > arch/arm64/hyperv/hv_core.c | 2 -- > arch/x86/hyperv/hv_apic.c | 1 - > arch/x86/hyperv/hv_init.c | 2 -- > arch/x86/hyperv/hv_proc.c | 1 - > arch/x86/hyperv/ivm.c | 1 - > arch/x86/hyperv/mmu.c | 1 - > arch/x86/hyperv/nested.c | 1 - > arch/x86/include/asm/kvm_host.h | 1 - > arch/x86/include/asm/mshyperv.h | 1 - > arch/x86/kernel/cpu/mshyperv.c | 1 - > arch/x86/kvm/vmx/vmx_onhyperv.h | 1 - > arch/x86/mm/pat/set_memory.c | 2 -- > drivers/clocksource/hyperv_timer.c | 1 - > drivers/hv/hv_balloon.c | 2 -- > drivers/hv/hv_common.c | 1 - > drivers/hv/hv_kvp.c | 1 - > drivers/hv/hv_snapshot.c | 1 - > drivers/hv/hyperv_vmbus.h | 1 - > net/vmw_vsock/hyperv_transport.c | 1 - > 19 files changed, 23 deletions(-) > > diff --git a/arch/arm64/hyperv/hv_core.c b/arch/arm64/hyperv/hv_core.c > index f1ebc025e1df..9d1969b875e9 100644 > --- a/arch/arm64/hyperv/hv_core.c > +++ b/arch/arm64/hyperv/hv_core.c > @@ -11,11 +11,9 @@ > #include <linux/types.h> > #include <linux/export.h> > #include <linux/mm.h> > -#include <linux/hyperv.h> > #include <linux/arm-smccc.h> > #include <linux/module.h> > #include <asm-generic/bug.h> > -#include <asm/hyperv-tlfs.h> > #include <asm/mshyperv.h> > > /* > diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c > index 0569f579338b..f022d5f64fb6 100644 > --- a/arch/x86/hyperv/hv_apic.c > +++ b/arch/x86/hyperv/hv_apic.c > @@ -23,7 +23,6 @@ > #include <linux/vmalloc.h> > #include <linux/mm.h> > #include <linux/clockchips.h> > -#include <linux/hyperv.h> > #include <linux/slab.h> > #include <linux/cpuhotplug.h> > #include <asm/hypervisor.h> > diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c > index 17a71e92a343..fc3c3d76c181 100644 > --- a/arch/x86/hyperv/hv_init.c > +++ b/arch/x86/hyperv/hv_init.c > @@ -19,7 +19,6 @@ > #include <asm/sev.h> > #include <asm/ibt.h> > #include <asm/hypervisor.h> > -#include <asm/hyperv-tlfs.h> > #include <asm/mshyperv.h> > #include <asm/idtentry.h> > #include <asm/set_memory.h> > @@ -27,7 +26,6 @@ > #include <linux/version.h> > #include <linux/vmalloc.h> > #include <linux/mm.h> > -#include <linux/hyperv.h> > #include <linux/slab.h> > #include <linux/kernel.h> > #include <linux/cpuhotplug.h> > diff --git a/arch/x86/hyperv/hv_proc.c b/arch/x86/hyperv/hv_proc.c > index 3fa1f2ee7b0d..b74c06c04ff1 100644 > --- a/arch/x86/hyperv/hv_proc.c > +++ b/arch/x86/hyperv/hv_proc.c > @@ -3,7 +3,6 @@ > #include <linux/vmalloc.h> > #include <linux/mm.h> > #include <linux/clockchips.h> > -#include <linux/hyperv.h> > #include <linux/slab.h> > #include <linux/cpuhotplug.h> > #include <linux/minmax.h> > diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c > index 60fc3ed72830..b56d70612734 100644 > --- a/arch/x86/hyperv/ivm.c > +++ b/arch/x86/hyperv/ivm.c > @@ -7,7 +7,6 @@ > */ > > #include <linux/bitfield.h> > -#include <linux/hyperv.h> > #include <linux/types.h> > #include <linux/slab.h> > #include <asm/svm.h> > diff --git a/arch/x86/hyperv/mmu.c b/arch/x86/hyperv/mmu.c > index 1cc113200ff5..cc8c3bd0e7c2 100644 > --- a/arch/x86/hyperv/mmu.c > +++ b/arch/x86/hyperv/mmu.c > @@ -1,6 +1,5 @@ > #define pr_fmt(fmt) "Hyper-V: " fmt > > -#include <linux/hyperv.h> > #include <linux/log2.h> > #include <linux/slab.h> > #include <linux/types.h> > diff --git a/arch/x86/hyperv/nested.c b/arch/x86/hyperv/nested.c > index 9dc259fa322e..ee06d0315c24 100644 > --- a/arch/x86/hyperv/nested.c > +++ b/arch/x86/hyperv/nested.c > @@ -11,7 +11,6 @@ > > > #include <linux/types.h> > -#include <asm/hyperv-tlfs.h> > #include <asm/mshyperv.h> > #include <asm/tlbflush.h> > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > index 4a68cb3eba78..3627eab994a3 100644 > --- a/arch/x86/include/asm/kvm_host.h > +++ b/arch/x86/include/asm/kvm_host.h > @@ -24,7 +24,6 @@ > #include <linux/pvclock_gtod.h> > #include <linux/clocksource.h> > #include <linux/irqbypass.h> > -#include <linux/hyperv.h> > #include <linux/kfifo.h> > > #include <asm/apic.h> > diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h > index 390c4d13956d..47ca48062547 100644 > --- a/arch/x86/include/asm/mshyperv.h > +++ b/arch/x86/include/asm/mshyperv.h > @@ -9,7 +9,6 @@ > #include <asm/hyperv-tlfs.h> > #include <asm/nospec-branch.h> > #include <asm/paravirt.h> > -#include <asm/mshyperv.h> > > /* > * Hyper-V always provides a single IO-APIC at this MMIO address. > diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c > index e0fd57a8ba84..8e8fd23b1439 100644 > --- a/arch/x86/kernel/cpu/mshyperv.c > +++ b/arch/x86/kernel/cpu/mshyperv.c > @@ -20,7 +20,6 @@ > #include <linux/random.h> > #include <asm/processor.h> > #include <asm/hypervisor.h> > -#include <asm/hyperv-tlfs.h> > #include <asm/mshyperv.h> > #include <asm/desc.h> > #include <asm/idtentry.h> > diff --git a/arch/x86/kvm/vmx/vmx_onhyperv.h > b/arch/x86/kvm/vmx/vmx_onhyperv.h > index eb48153bfd73..f4b081eb6521 100644 > --- a/arch/x86/kvm/vmx/vmx_onhyperv.h > +++ b/arch/x86/kvm/vmx/vmx_onhyperv.h > @@ -3,7 +3,6 @@ > #ifndef __ARCH_X86_KVM_VMX_ONHYPERV_H__ > #define __ARCH_X86_KVM_VMX_ONHYPERV_H__ > > -#include <asm/hyperv-tlfs.h> > #include <asm/mshyperv.h> > > #include <linux/jump_label.h> > diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c > index 44f7b2ea6a07..85fa0d4509f0 100644 > --- a/arch/x86/mm/pat/set_memory.c > +++ b/arch/x86/mm/pat/set_memory.c > @@ -32,8 +32,6 @@ > #include <asm/pgalloc.h> > #include <asm/proto.h> > #include <asm/memtype.h> > -#include <asm/hyperv-tlfs.h> > -#include <asm/mshyperv.h> > > #include "../mm_internal.h" > > diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c > index b2a080647e41..1b7de45a7185 100644 > --- a/drivers/clocksource/hyperv_timer.c > +++ b/drivers/clocksource/hyperv_timer.c > @@ -23,7 +23,6 @@ > #include <linux/acpi.h> > #include <linux/hyperv.h> > #include <clocksource/hyperv_timer.h> > -#include <asm/hyperv-tlfs.h> > #include <asm/mshyperv.h> > > static struct clock_event_device __percpu *hv_clock_event; > diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c > index c38dcdfcb914..a120e9b80ded 100644 > --- a/drivers/hv/hv_balloon.c > +++ b/drivers/hv/hv_balloon.c > @@ -28,8 +28,6 @@ > #include <linux/sizes.h> > > #include <linux/hyperv.h> > -#include <asm/hyperv-tlfs.h> > - > #include <asm/mshyperv.h> > > #define CREATE_TRACE_POINTS > diff --git a/drivers/hv/hv_common.c b/drivers/hv/hv_common.c > index 9c452bfbd571..a5217f837237 100644 > --- a/drivers/hv/hv_common.c > +++ b/drivers/hv/hv_common.c > @@ -28,7 +28,6 @@ > #include <linux/slab.h> > #include <linux/dma-map-ops.h> > #include <linux/set_memory.h> > -#include <asm/hyperv-tlfs.h> > #include <asm/mshyperv.h> > > /* > diff --git a/drivers/hv/hv_kvp.c b/drivers/hv/hv_kvp.c > index d35b60c06114..68e73ec7ab28 100644 > --- a/drivers/hv/hv_kvp.c > +++ b/drivers/hv/hv_kvp.c > @@ -27,7 +27,6 @@ > #include <linux/connector.h> > #include <linux/workqueue.h> > #include <linux/hyperv.h> > -#include <asm/hyperv-tlfs.h> > > #include "hyperv_vmbus.h" > #include "hv_utils_transport.h" > diff --git a/drivers/hv/hv_snapshot.c b/drivers/hv/hv_snapshot.c > index 0d2184be1691..90fc935e89bd 100644 > --- a/drivers/hv/hv_snapshot.c > +++ b/drivers/hv/hv_snapshot.c > @@ -12,7 +12,6 @@ > #include <linux/connector.h> > #include <linux/workqueue.h> > #include <linux/hyperv.h> > -#include <asm/hyperv-tlfs.h> > > #include "hyperv_vmbus.h" > #include "hv_utils_transport.h" > diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h > index 76ac5185a01a..321770d7ce25 100644 > --- a/drivers/hv/hyperv_vmbus.h > +++ b/drivers/hv/hyperv_vmbus.h > @@ -15,7 +15,6 @@ > #include <linux/list.h> > #include <linux/bitops.h> > #include <asm/sync_bitops.h> > -#include <asm/hyperv-tlfs.h> > #include <linux/atomic.h> > #include <linux/hyperv.h> > #include <linux/interrupt.h> > diff --git a/net/vmw_vsock/hyperv_transport.c b/net/vmw_vsock/hyperv_transport.c > index e2157e387217..f77f0ea1ddad 100644 > --- a/net/vmw_vsock/hyperv_transport.c > +++ b/net/vmw_vsock/hyperv_transport.c > @@ -13,7 +13,6 @@ > #include <linux/hyperv.h> > #include <net/sock.h> > #include <net/af_vsock.h> > -#include <asm/hyperv-tlfs.h> > > /* Older (VMBUS version 'VERSION_WIN10' or before) Windows hosts have some > * stricter requirements on the hv_sock ring buffer size of six 4K pages. > -- > 2.34.1 >