All of lore.kernel.org
 help / color / mirror / Atom feed
* [hyperv:hyperv-fixes 4/8] drivers/hv/mshv_synic.c:591:undefined reference to `hv_vmbus_exists'
@ 2026-05-14 19:50 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-05-14 19:50 UTC (permalink / raw)
  To: Jork Loeser
  Cc: oe-kbuild-all, Wei Liu, Anirudh Rayabharam (Microsoft),
	Stanislav Kinsburskii

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git hyperv-fixes
head:   8b35874f56ded0cc1a90a25b87411249a86246cd
commit: f1a9e67c11388965802a61922c313bfc43272afe [4/8] mshv: limit SynIC management to MSHV-owned resources
config: x86_64-randconfig-072-20260514 (https://download.01.org/0day-ci/archive/20260515/202605150351.zra956jl-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260515/202605150351.zra956jl-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605150351.zra956jl-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: vmlinux.o: in function `mshv_synic_cpu_exit':
>> drivers/hv/mshv_synic.c:591:(.text+0x1f57f97): undefined reference to `hv_vmbus_exists'
   ld: vmlinux.o: in function `mshv_synic_cpu_init':
   drivers/hv/mshv_synic.c:470:(.text+0x1f58229): undefined reference to `hv_vmbus_exists'


vim +591 drivers/hv/mshv_synic.c

   579	
   580	static int mshv_synic_cpu_exit(unsigned int cpu)
   581	{
   582		union hv_synic_sint sint;
   583		union hv_synic_sirbp sirbp;
   584		struct hv_synic_pages *spages = this_cpu_ptr(synic_pages);
   585		struct hv_message_page **msg_page = &spages->hyp_synic_message_page;
   586		struct hv_synic_event_flags_page **event_flags_page =
   587			&spages->synic_event_flags_page;
   588		struct hv_synic_event_ring_page **event_ring_page =
   589			&spages->synic_event_ring_page;
   590		/* VMBus owns SIMP/SIEFP/SCONTROL when it is active */
 > 591		bool vmbus_active = hv_vmbus_exists();
   592	
   593		/* Disable the interrupt */
   594		sint.as_uint64 = hv_get_non_nested_msr(HV_MSR_SINT0 + HV_SYNIC_INTERCEPTION_SINT_INDEX);
   595		sint.masked = true;
   596		hv_set_non_nested_msr(HV_MSR_SINT0 + HV_SYNIC_INTERCEPTION_SINT_INDEX,
   597				      sint.as_uint64);
   598	
   599		/* Disable Doorbell SINT */
   600		sint.as_uint64 = hv_get_non_nested_msr(HV_MSR_SINT0 + HV_SYNIC_DOORBELL_SINT_INDEX);
   601		sint.masked = true;
   602		hv_set_non_nested_msr(HV_MSR_SINT0 + HV_SYNIC_DOORBELL_SINT_INDEX,
   603				      sint.as_uint64);
   604	
   605		if (mshv_sint_irq != -1)
   606			disable_percpu_irq(mshv_sint_irq);
   607	
   608		/* Disable SYNIC event ring page owned by MSHV */
   609		sirbp.as_uint64 = hv_get_non_nested_msr(HV_MSR_SIRBP);
   610		sirbp.sirbp_enabled = false;
   611	
   612		if (hv_root_partition()) {
   613			hv_set_non_nested_msr(HV_MSR_SIRBP, sirbp.as_uint64);
   614			memunmap(*event_ring_page);
   615		} else {
   616			sirbp.base_sirbp_gpa = 0;
   617			hv_set_non_nested_msr(HV_MSR_SIRBP, sirbp.as_uint64);
   618			free_page((unsigned long)*event_ring_page);
   619		}
   620	
   621		/*
   622		 * Release our mappings of the message and event flags pages.
   623		 * When VMBus is not active, we enabled SIMP/SIEFP — disable
   624		 * them. Otherwise VMBus owns the MSRs — leave them.
   625		 */
   626		memunmap(*event_flags_page);
   627		if (!vmbus_active) {
   628			union hv_synic_simp simp;
   629			union hv_synic_siefp siefp;
   630	
   631			siefp.as_uint64 = hv_get_non_nested_msr(HV_MSR_SIEFP);
   632			siefp.siefp_enabled = false;
   633			hv_set_non_nested_msr(HV_MSR_SIEFP, siefp.as_uint64);
   634	
   635			simp.as_uint64 = hv_get_non_nested_msr(HV_MSR_SIMP);
   636			simp.simp_enabled = false;
   637			hv_set_non_nested_msr(HV_MSR_SIMP, simp.as_uint64);
   638		}
   639		memunmap(*msg_page);
   640	
   641		/* When VMBus is active it owns SCONTROL — leave it. */
   642		if (!vmbus_active) {
   643			union hv_synic_scontrol sctrl;
   644	
   645			sctrl.as_uint64 = hv_get_non_nested_msr(HV_MSR_SCONTROL);
   646			sctrl.enable = 0;
   647			hv_set_non_nested_msr(HV_MSR_SCONTROL, sctrl.as_uint64);
   648		}
   649	
   650		return 0;
   651	}
   652	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

only message in thread, other threads:[~2026-05-14 19:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-14 19:50 [hyperv:hyperv-fixes 4/8] drivers/hv/mshv_synic.c:591:undefined reference to `hv_vmbus_exists' kernel test robot

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.