> -----Original Message----- > From: tip tree robot <tipbot@xxxxxxxxx> > Sent: Saturday, May 19, 2018 12:40 PM > To: linux-tip-commits@xxxxxxxxxxxxxxx > Cc: lkp@xxxxxxxxx; hpa@xxxxxxxxx; mingo@xxxxxxxxxx; Michael Kelley > (EOSG) <Michael.H.Kelley@xxxxxxxxxxxxx>; tglx@xxxxxxxxxxxxx; KY > Srinivasan <kys@xxxxxxxxxxxxx> > 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@xxxxxxxxxxxxx> > AuthorDate: Sat, 19 May 2018 21:22:48 +0200 > Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > 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@xxxxxxxxx> > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> > Cc: Michael Kelley <mikelley@xxxxxxxxxxxxx> > --- > 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; ��.n��������+%������w��{.n�����{��ة��)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥
![]() |