All of lore.kernel.org
 help / color / mirror / Atom feed
* RE: [tip:x86/hyperv] x86/Hyper-V/hv_apic: Build the Hyper-V APIC conditionally
       [not found] <tip-2d2ccf24939cf369f7473c7e4ea309891be91848@git.kernel.org>
@ 2018-05-20 17:55 ` KY Srinivasan
  0 siblings, 0 replies; only message in thread
From: KY Srinivasan @ 2018-05-20 17:55 UTC (permalink / raw)
  To: Michael Kelley (EOSG),
	tglx, KY Srinivasan, linux-kernel, mingo, lkp, hpa,
	linux-tip-commits



> -----Original Message-----
> From: tip tree robot <tipbot@zytor.com>
> Sent: Saturday, May 19, 2018 12:40 PM
> To: linux-tip-commits@vger.kernel.org
> Cc: lkp@intel.com; hpa@zytor.com; mingo@kernel.org; Michael Kelley
> (EOSG) <Michael.H.Kelley@microsoft.com>; tglx@linutronix.de; KY
> Srinivasan <kys@microsoft.com>
> Subject: [tip:x86/hyperv] x86/Hyper-V/hv_apic: Build the Hyper-V APIC
> conditionally
> 
> Commit-ID:  2d2ccf24939cf369f7473c7e4ea309891be91848
> Gitweb:
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.ker
> nel.org%2Ftip%2F2d2ccf24939cf369f7473c7e4ea309891be91848&data=02%7C
> 01%7Ckys%40microsoft.com%7C4ca32d3abd084c7a96b608d5bdc04fd9%7C72
> f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636623556042008674&sdata
> =F04rsVvpkPMwuzsQF6odQX2jER84S4AYcVQr4CB0yc0%3D&reserved=0
> Author:     Thomas Gleixner <tglx@linutronix.de>
> AuthorDate: Sat, 19 May 2018 21:22:48 +0200
> Committer:  Thomas Gleixner <tglx@linutronix.de>
> CommitDate: Sat, 19 May 2018 21:34:11 +0200
> 
> x86/Hyper-V/hv_apic: Build the Hyper-V APIC conditionally
> 
> The Hyper-V APIC code is built when CONFIG_HYPERV is enabled but the
> actual
> code in that file is guarded with CONFIG_X86_64. There is no point in doing
> this. Neither is there a point in having the CONFIG_HYPERV guard in there
> because the containing directory is not built when CONFIG_HYPERV=n.
> 
> Further for the hv_init_apic() function a stub is provided only for
> CONFIG_HYPERV=n, which is pointless as the callsite is not compiled at
> all. But for X86_32 the stub is missing and the build fails.
> 
> Clean that up:
> 
>   - Compile hv_apic.c only when CONFIG_X86_64=y
>   - Make the stub for hv_init_apic() available when CONFG_X86_64=n

Thanks Thomas. I was planning to send this patch today after I saw the kbuild robot mail.

Regards,

K. Y
> 
> Fixes: 6b48cb5f8347 ("X86/Hyper-V: Enlighten APIC access")
> Reported-by: kbuild test robot <lkp@intel.com>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: K. Y. Srinivasan <kys@microsoft.com>
> Cc: Michael Kelley <mikelley@microsoft.com>
> ---
>  arch/x86/hyperv/Makefile        | 3 ++-
>  arch/x86/hyperv/hv_apic.c       | 6 ------
>  arch/x86/include/asm/mshyperv.h | 7 ++++++-
>  3 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/x86/hyperv/Makefile b/arch/x86/hyperv/Makefile
> index 00ce4df01a09..b173d404e3df 100644
> --- a/arch/x86/hyperv/Makefile
> +++ b/arch/x86/hyperv/Makefile
> @@ -1 +1,2 @@
> -obj-y		:= hv_init.o mmu.o hv_apic.o
> +obj-y			:= hv_init.o mmu.o
> +obj-$(CONFIG_X86_64)	+= hv_apic.o
> diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c
> index d3ff6e255924..f68855499391 100644
> --- a/arch/x86/hyperv/hv_apic.c
> +++ b/arch/x86/hyperv/hv_apic.c
> @@ -31,9 +31,6 @@
>  #include <asm/mshyperv.h>
>  #include <asm/apic.h>
> 
> -#ifdef CONFIG_X86_64
> -#if IS_ENABLED(CONFIG_HYPERV)
> -
>  static struct apic orig_apic;
> 
>  static u64 hv_apic_icr_read(void)
> @@ -257,6 +254,3 @@ void __init hv_apic_init(void)
>  		apic->icr_read  = hv_apic_icr_read;
>  	}
>  }
> -
> -#endif /* CONFIG_HYPERV */
> -#endif /* CONFIG_X86_64 */
> diff --git a/arch/x86/include/asm/mshyperv.h
> b/arch/x86/include/asm/mshyperv.h
> index 9aaa493f5756..997192131b7b 100644
> --- a/arch/x86/include/asm/mshyperv.h
> +++ b/arch/x86/include/asm/mshyperv.h
> @@ -302,7 +302,13 @@ void hyperv_reenlightenment_intr(struct pt_regs
> *regs);
>  void set_hv_tscchange_cb(void (*cb)(void));
>  void clear_hv_tscchange_cb(void);
>  void hyperv_stop_tsc_emulation(void);
> +
> +#ifdef CONFIG_X86_64
>  void hv_apic_init(void);
> +#else
> +static inline void hv_apic_init(void) {}
> +#endif
> +
>  #else /* CONFIG_HYPERV */
>  static inline void hyperv_init(void) {}
>  static inline bool hv_is_hyperv_initialized(void) { return false; }
> @@ -311,7 +317,6 @@ static inline void hyperv_setup_mmu_ops(void) {}
>  static inline void set_hv_tscchange_cb(void (*cb)(void)) {}
>  static inline void clear_hv_tscchange_cb(void) {}
>  static inline void hyperv_stop_tsc_emulation(void) {};
> -static inline void hv_apic_init(void) {}
>  static inline struct hv_vp_assist_page *hv_get_vp_assist_page(unsigned int
> cpu)
>  {
>  	return NULL;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-05-20 17:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <tip-2d2ccf24939cf369f7473c7e4ea309891be91848@git.kernel.org>
2018-05-20 17:55 ` [tip:x86/hyperv] x86/Hyper-V/hv_apic: Build the Hyper-V APIC conditionally KY Srinivasan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.