[PATCH 2/5] hyperv: Remove unnecessary #includes

Michael Kelley mhklinux at outlook.com
Thu Oct 10 11:21:48 PDT 2024


From: Nuno Das Neves <nunodasneves at linux.microsoft.com> 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 at linux.microsoft.com>
> ---
>  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
> 




More information about the linux-arm-kernel mailing list