Hi Dexuan, kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master] [also build test WARNING on v7.1-rc1 next-20260429] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Dexuan-Cui/Drivers-hv-vmbus-Improve-the-logc-of-reserving-fb_mmio-on-Gen2-VMs/20260424-033622 base: linus/master patch link: https://lore.kernel.org/r/20260416183529.838321-1-decui%40microsoft.com patch subject: [PATCH] Drivers: hv: vmbus: Improve the logc of reserving fb_mmio on Gen2 VMs config: i386-buildonly-randconfig-002-20260430 (https://download.01.org/0day-ci/archive/20260501/[email protected]/config) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260501/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All warnings (new ones prefixed by >>): >> drivers/hv/vmbus_drv.c:2403:40: warning: result of comparison of constant >> 4294967296 with expression of type 'resource_size_t' (aka 'unsigned int') is >> always false [-Wtautological-constant-out-of-range-compare] 2403 | if (!low_mmio_base || low_mmio_base >= SZ_4G || | ~~~~~~~~~~~~~ ^ ~~~~~ 1 warning generated. vim +2403 drivers/hv/vmbus_drv.c 2385 2386 static void __maybe_unused vmbus_reserve_fb(void) 2387 { 2388 resource_size_t start = 0, size; 2389 resource_size_t low_mmio_base; 2390 struct pci_dev *pdev; 2391 2392 /* Hyper-V CoCo guests do not have a framebuffer device. */ 2393 if (cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT)) 2394 return; 2395 2396 if (efi_enabled(EFI_BOOT)) { 2397 /* Gen2 VM: get FB base from EFI framebuffer */ 2398 if (IS_ENABLED(CONFIG_SYSFB)) { 2399 start = sysfb_primary_display.screen.lfb_base; 2400 size = max_t(__u32, sysfb_primary_display.screen.lfb_size, 0x800000); 2401 2402 low_mmio_base = hyperv_mmio->start; > 2403 if (!low_mmio_base || low_mmio_base >= SZ_4G || 2404 (start && start < low_mmio_base)) { 2405 pr_warn("Unexpected low mmio base 0x%pa\n", &low_mmio_base); 2406 } else { 2407 /* 2408 * If the kdump kernel's lfb_base is 0, 2409 * fall back to the low mmio base. 2410 */ 2411 if (!start) 2412 start = low_mmio_base; 2413 /* 2414 * Reserve half of the space below 4GB for high 2415 * resolutions, but cap the reservation to 128MB. 2416 */ 2417 size = min((SZ_4G - start) / 2, SZ_128M); 2418 } 2419 } 2420 } else { 2421 /* Gen1 VM: get FB base from PCI */ 2422 pdev = pci_get_device(PCI_VENDOR_ID_MICROSOFT, 2423 PCI_DEVICE_ID_HYPERV_VIDEO, NULL); 2424 if (!pdev) 2425 return; 2426 2427 if (pdev->resource[0].flags & IORESOURCE_MEM) { 2428 start = pci_resource_start(pdev, 0); 2429 size = pci_resource_len(pdev, 0); 2430 } 2431 2432 /* 2433 * Release the PCI device so hyperv_drm driver can grab it 2434 * later. 2435 */ 2436 pci_dev_put(pdev); 2437 } 2438 2439 if (!start) 2440 return; 2441 2442 /* 2443 * Make a claim for the frame buffer in the resource tree under the 2444 * first node, which will be the one below 4GB. The length seems to 2445 * be underreported, particularly in a Generation 1 VM. So start out 2446 * reserving a larger area and make it smaller until it succeeds. 2447 */ 2448 for (; !fb_mmio && (size >= 0x100000); size >>= 1) 2449 fb_mmio = __request_region(hyperv_mmio, start, size, fb_mmio_name, 0); 2450 2451 pr_info("hv_mmio=%pR,%pR fb=%pR\n", hyperv_mmio, hyperv_mmio->sibling, fb_mmio); 2452 } 2453 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki

