From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [hch-misc:hyperv-vmap 37/49] drivers/hv/connection.c:255:21: error: implicit declaration of function 'hv_mark_gpa_visibility'
Date: Wed, 01 Sep 2021 19:25:36 +0800 [thread overview]
Message-ID: <202109011931.uzgSWPtg-lkp@intel.com> (raw)
[-- 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 --]
reply other threads:[~2021-09-01 11:25 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202109011931.uzgSWPtg-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.