All of lore.kernel.org
 help / color / mirror / Atom feed
* [hch-misc:hyperv-vmap 37/49] drivers/hv/connection.c:255:21: error: implicit declaration of function 'hv_mark_gpa_visibility'
@ 2021-09-01 11:25 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-09-01 11:25 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 9306 bytes --]

tree:   git://git.infradead.org/users/hch/misc.git hyperv-vmap
head:   8248f295928aded3364a1e54a4e0022e93d3610c
commit: 2d802447e20b42b1801e7a03386318ed5b929fe0 [37/49] HV/Vmbus: Add SNP support for VMbus channel initiate message
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git remote add hch-misc git://git.infradead.org/users/hch/misc.git
        git fetch --no-tags hch-misc hyperv-vmap
        git checkout 2d802447e20b42b1801e7a03386318ed5b929fe0
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from arch/arm64/include/asm/mshyperv.h:52,
                    from drivers/hv/connection.c:23:
   include/asm-generic/mshyperv.h: In function 'vmbus_signal_eom':
   include/asm-generic/mshyperv.h:153:17: error: implicit declaration of function 'hv_signal_eom'; did you mean 'vmbus_signal_eom'? [-Werror=implicit-function-declaration]
     153 |                 hv_signal_eom(old_msg_type);
         |                 ^~~~~~~~~~~~~
         |                 vmbus_signal_eom
   drivers/hv/connection.c: In function 'vmbus_connect':
>> drivers/hv/connection.c:255:21: error: implicit declaration of function 'hv_mark_gpa_visibility' [-Werror=implicit-function-declaration]
     255 |                 if (hv_mark_gpa_visibility(2, pfn,
         |                     ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/connection.c:256:33: error: 'VMBUS_PAGE_VISIBLE_READ_WRITE' undeclared (first use in this function)
     256 |                                 VMBUS_PAGE_VISIBLE_READ_WRITE)) {
         |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hv/connection.c:256:33: note: each undeclared identifier is reported only once for each function it appears in
   drivers/hv/connection.c: In function 'vmbus_disconnect':
>> drivers/hv/connection.c:368:48: error: 'VMBUS_PAGE_NOT_VISIBLE' undeclared (first use in this function)
     368 |                 hv_mark_gpa_visibility(2, pfn, VMBUS_PAGE_NOT_VISIBLE);
         |                                                ^~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/hv_mark_gpa_visibility +255 drivers/hv/connection.c

   185	
   186	/*
   187	 * vmbus_connect - Sends a connect request on the partition service connection
   188	 */
   189	int vmbus_connect(void)
   190	{
   191		struct vmbus_channel_msginfo *msginfo = NULL;
   192		int i, ret = 0;
   193		__u32 version;
   194		u64 pfn[2];
   195	
   196		/* Initialize the vmbus connection */
   197		vmbus_connection.conn_state = CONNECTING;
   198		vmbus_connection.work_queue = create_workqueue("hv_vmbus_con");
   199		if (!vmbus_connection.work_queue) {
   200			ret = -ENOMEM;
   201			goto cleanup;
   202		}
   203	
   204		vmbus_connection.handle_primary_chan_wq =
   205			create_workqueue("hv_pri_chan");
   206		if (!vmbus_connection.handle_primary_chan_wq) {
   207			ret = -ENOMEM;
   208			goto cleanup;
   209		}
   210	
   211		vmbus_connection.handle_sub_chan_wq =
   212			create_workqueue("hv_sub_chan");
   213		if (!vmbus_connection.handle_sub_chan_wq) {
   214			ret = -ENOMEM;
   215			goto cleanup;
   216		}
   217	
   218		INIT_LIST_HEAD(&vmbus_connection.chn_msg_list);
   219		spin_lock_init(&vmbus_connection.channelmsg_lock);
   220	
   221		INIT_LIST_HEAD(&vmbus_connection.chn_list);
   222		mutex_init(&vmbus_connection.channel_mutex);
   223	
   224		/*
   225		 * Setup the vmbus event connection for channel interrupt
   226		 * abstraction stuff
   227		 */
   228		vmbus_connection.int_page =
   229		(void *)hv_alloc_hyperv_zeroed_page();
   230		if (vmbus_connection.int_page == NULL) {
   231			ret = -ENOMEM;
   232			goto cleanup;
   233		}
   234	
   235		vmbus_connection.recv_int_page = vmbus_connection.int_page;
   236		vmbus_connection.send_int_page =
   237			(void *)((unsigned long)vmbus_connection.int_page +
   238				(HV_HYP_PAGE_SIZE >> 1));
   239	
   240		/*
   241		 * Setup the monitor notification facility. The 1st page for
   242		 * parent->child and the 2nd page for child->parent
   243		 */
   244		vmbus_connection.monitor_pages[0] = (void *)hv_alloc_hyperv_zeroed_page();
   245		vmbus_connection.monitor_pages[1] = (void *)hv_alloc_hyperv_zeroed_page();
   246		if ((vmbus_connection.monitor_pages[0] == NULL) ||
   247		    (vmbus_connection.monitor_pages[1] == NULL)) {
   248			ret = -ENOMEM;
   249			goto cleanup;
   250		}
   251	
   252		if (hv_is_isolation_supported()) {
   253			pfn[0] = virt_to_hvpfn(vmbus_connection.monitor_pages[0]);
   254			pfn[1] = virt_to_hvpfn(vmbus_connection.monitor_pages[1]);
 > 255			if (hv_mark_gpa_visibility(2, pfn,
 > 256					VMBUS_PAGE_VISIBLE_READ_WRITE)) {
   257				ret = -EFAULT;
   258				goto cleanup;
   259			}
   260		}
   261	
   262		msginfo = kzalloc(sizeof(*msginfo) +
   263				  sizeof(struct vmbus_channel_initiate_contact),
   264				  GFP_KERNEL);
   265		if (msginfo == NULL) {
   266			ret = -ENOMEM;
   267			goto cleanup;
   268		}
   269	
   270		/*
   271		 * Negotiate a compatible VMBUS version number with the
   272		 * host. We start with the highest number we can support
   273		 * and work our way down until we negotiate a compatible
   274		 * version.
   275		 */
   276	
   277		for (i = 0; ; i++) {
   278			if (i == ARRAY_SIZE(vmbus_versions)) {
   279				ret = -EDOM;
   280				goto cleanup;
   281			}
   282	
   283			version = vmbus_versions[i];
   284			if (version > max_version)
   285				continue;
   286	
   287			ret = vmbus_negotiate_version(msginfo, version);
   288			if (ret == -ETIMEDOUT)
   289				goto cleanup;
   290	
   291			if (vmbus_connection.conn_state == CONNECTED)
   292				break;
   293		}
   294	
   295		if (hv_is_isolation_supported() && version < VERSION_WIN10_V5_2) {
   296			pr_err("Invalid VMBus version %d.%d (expected >= %d.%d) from the host supporting isolation\n",
   297			       version >> 16, version & 0xFFFF, VERSION_WIN10_V5_2 >> 16, VERSION_WIN10_V5_2 & 0xFFFF);
   298			ret = -EINVAL;
   299			goto cleanup;
   300		}
   301	
   302		vmbus_proto_version = version;
   303		pr_info("Vmbus version:%d.%d\n",
   304			version >> 16, version & 0xFFFF);
   305	
   306		vmbus_connection.channels = kcalloc(MAX_CHANNEL_RELIDS,
   307						    sizeof(struct vmbus_channel *),
   308						    GFP_KERNEL);
   309		if (vmbus_connection.channels == NULL) {
   310			ret = -ENOMEM;
   311			goto cleanup;
   312		}
   313	
   314		kfree(msginfo);
   315		return 0;
   316	
   317	cleanup:
   318		pr_err("Unable to connect to host\n");
   319	
   320		vmbus_connection.conn_state = DISCONNECTED;
   321		vmbus_disconnect();
   322	
   323		kfree(msginfo);
   324	
   325		return ret;
   326	}
   327	
   328	void vmbus_disconnect(void)
   329	{
   330		u64 pfn[2];
   331	
   332		/*
   333		 * First send the unload request to the host.
   334		 */
   335		vmbus_initiate_unload(false);
   336	
   337		if (vmbus_connection.handle_sub_chan_wq)
   338			destroy_workqueue(vmbus_connection.handle_sub_chan_wq);
   339	
   340		if (vmbus_connection.handle_primary_chan_wq)
   341			destroy_workqueue(vmbus_connection.handle_primary_chan_wq);
   342	
   343		if (vmbus_connection.work_queue)
   344			destroy_workqueue(vmbus_connection.work_queue);
   345	
   346		if (vmbus_connection.int_page) {
   347			hv_free_hyperv_page((unsigned long)vmbus_connection.int_page);
   348			vmbus_connection.int_page = NULL;
   349		}
   350	
   351		if (hv_is_isolation_supported()) {
   352			if (vmbus_connection.monitor_pages_va[0]) {
   353				memunmap(vmbus_connection.monitor_pages[0]);
   354				vmbus_connection.monitor_pages[0]
   355					= vmbus_connection.monitor_pages_va[0];
   356				vmbus_connection.monitor_pages_va[0] = NULL;
   357			}
   358	
   359			if (vmbus_connection.monitor_pages_va[1]) {
   360				memunmap(vmbus_connection.monitor_pages[1]);
   361				vmbus_connection.monitor_pages[1]
   362					= vmbus_connection.monitor_pages_va[1];
   363				vmbus_connection.monitor_pages_va[1] = NULL;
   364			}
   365	
   366			pfn[0] = virt_to_hvpfn(vmbus_connection.monitor_pages[0]);
   367			pfn[1] = virt_to_hvpfn(vmbus_connection.monitor_pages[1]);
 > 368			hv_mark_gpa_visibility(2, pfn, VMBUS_PAGE_NOT_VISIBLE);
   369		}
   370	
   371		hv_free_hyperv_page((unsigned long)vmbus_connection.monitor_pages[0]);
   372		hv_free_hyperv_page((unsigned long)vmbus_connection.monitor_pages[1]);
   373		vmbus_connection.monitor_pages[0] = NULL;
   374		vmbus_connection.monitor_pages[1] = NULL;
   375	}
   376	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 78026 bytes --]

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

only message in thread, other threads:[~2021-09-01 11:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-01 11:25 [hch-misc:hyperv-vmap 37/49] drivers/hv/connection.c:255:21: error: implicit declaration of function 'hv_mark_gpa_visibility' 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.