[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 3/7] x86/xen: drop tests for highmem in pv code
Hi Juergen, I love your patch! Perhaps something to improve: [auto build test WARNING on tip/x86/core] [also build test WARNING on tip/x86/asm v5.8 next-20200806] [cannot apply to xen-tip/linux-next tip/x86/vdso] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Juergen-Gross/Remove-32-bit-Xen-PV-guest-support/20200807-164058 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git ef2ff0f5d6008d325c9a068e20981c0d0acc4d6b config: x86_64-allyesconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce (this is a W=1 build): # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): arch/x86/xen/enlighten_pv.c: In function 'set_aliased_prot': >> arch/x86/xen/enlighten_pv.c:348:15: warning: variable 'page' set but not >> used [-Wunused-but-set-variable] 348 | struct page *page; | ^~~~ arch/x86/xen/enlighten_pv.c: At top level: arch/x86/xen/enlighten_pv.c:1198:34: warning: no previous prototype for 'xen_start_kernel' [-Wmissing-prototypes] 1198 | asmlinkage __visible void __init xen_start_kernel(void) | ^~~~~~~~~~~~~~~~ vim +/page +348 arch/x86/xen/enlighten_pv.c e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 335 e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 336 /* e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 337 * Set the page permissions for a particular virtual address. If the e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 338 * address is a vmalloc mapping (or other non-linear mapping), then e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 339 * find the linear mapping of the page and also set its protections to e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 340 * match. e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 341 */ e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 342 static void set_aliased_prot(void *v, pgprot_t prot) e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 343 { e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 344 int level; e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 345 pte_t *ptep; e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 346 pte_t pte; e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 347 unsigned long pfn; e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 @348 struct page *page; e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 349 unsigned char dummy; 64aef3716eab524 Juergen Gross 2020-08-07 350 void *av; e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 351 e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 352 ptep = lookup_address((unsigned long)v, &level); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 353 BUG_ON(ptep == NULL); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 354 e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 355 pfn = pte_pfn(*ptep); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 356 page = pfn_to_page(pfn); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 357 e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 358 pte = pfn_pte(pfn, prot); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 359 e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 360 /* e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 361 * Careful: update_va_mapping() will fail if the virtual address e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 362 * we're poking isn't populated in the page tables. We don't e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 363 * need to worry about the direct map (that's always in the page e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 364 * tables), but we need to be careful about vmap space. In e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 365 * particular, the top level page table can lazily propagate e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 366 * entries between processes, so if we've switched mms since we e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 367 * vmapped the target in the first place, we might not have the e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 368 * top-level page table entry populated. e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 369 * e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 370 * We disable preemption because we want the same mm active when e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 371 * we probe the target and when we issue the hypercall. We'll e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 372 * have the same nominal mm, but if we're a kernel thread, lazy e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 373 * mm dropping could change our pgd. e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 374 * e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 375 * Out of an abundance of caution, this uses __get_user() to fault e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 376 * in the target address just in case there's some obscure case e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 377 * in which the target address isn't readable. e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 378 */ e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 379 e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 380 preempt_disable(); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 381 fe557319aa06c23 Christoph Hellwig 2020-06-17 382 copy_from_kernel_nofault(&dummy, v, 1); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 383 e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 384 if (HYPERVISOR_update_va_mapping((unsigned long)v, pte, 0)) e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 385 BUG(); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 386 64aef3716eab524 Juergen Gross 2020-08-07 387 av = __va(PFN_PHYS(pfn)); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 388 64aef3716eab524 Juergen Gross 2020-08-07 389 if (av != v && HYPERVISOR_update_va_mapping((unsigned long)av, pte, 0)) e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 390 BUG(); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 391 e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 392 preempt_enable(); e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 393 } e1dab14cf68d1e0 Vitaly Kuznetsov 2017-03-14 394 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Attachment:
.config.gz
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |