Hi, kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-misc/drm-misc-next] [also build test WARNING on daeinki-drm-exynos/exynos-drm-next drm/drm-next drm-i915/for-linux-next-fixes drm-tip/drm-tip linus/master v7.0-rc1 next-20260224] [cannot apply to drm-i915/for-linux-next] [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/sunpeng-li-amd-com/drm-vblank-Add-drm_crtc_vblank_is_off-helper/20260225-052945 base: https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next patch link: https://lore.kernel.org/r/20260224212639.390768-3-sunpeng.li%40amd.com patch subject: [PATCH 2/5] drm/vblank: Introduce deferred vblank enable/disable config: microblaze-randconfig-r053-20260225 (https://download.01.org/0day-ci/archive/20260225/[email protected]/config) compiler: microblaze-linux-gcc (GCC) 8.5.0 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]/ cocci warnings: (new ones prefixed by >>) >> drivers/gpu/drm/drm_vblank.c:1402:6-25: WARNING: atomic_dec_and_test >> variation before object free at line 1409. drivers/gpu/drm/drm_vblank.c:1402:6-25: WARNING: atomic_dec_and_test variation before object free at line 1416. vim +1402 drivers/gpu/drm/drm_vblank.c 1385 1386 void drm_vblank_put(struct drm_device *dev, unsigned int pipe) 1387 { 1388 struct drm_vblank_crtc *vblank = drm_vblank_crtc(dev, pipe); 1389 int vblank_offdelay = vblank->config.offdelay_ms; 1390 bool needs_deferred_disable; 1391 1392 if (drm_WARN_ON(dev, pipe >= dev->num_crtcs)) 1393 return; 1394 1395 if (drm_WARN_ON(dev, atomic_read(&vblank->refcount) == 0)) 1396 return; 1397 1398 needs_deferred_disable = 1399 drm_crtc_needs_deferred_vblank(drm_crtc_from_index(dev, pipe)); 1400 1401 /* Last user schedules interrupt disable */ > 1402 if (!atomic_dec_and_test(&vblank->refcount)) 1403 return; 1404 1405 if (!vblank_offdelay) 1406 return; 1407 else if (vblank_offdelay < 0) { 1408 if (needs_deferred_disable) > 1409 mod_delayed_work(dev->deferred_vblank_wq, 1410 &vblank->disable_work, 1411 0); 1412 else 1413 vblank_disable_fn(&vblank->disable_timer); 1414 } else if (!vblank->config.disable_immediate) { 1415 if (needs_deferred_disable) 1416 mod_delayed_work(dev->deferred_vblank_wq, 1417 &vblank->disable_work, 1418 msecs_to_jiffies(vblank_offdelay)); 1419 else 1420 mod_timer(&vblank->disable_timer, 1421 jiffies + ((vblank_offdelay * HZ) / 1000)); 1422 } 1423 } 1424 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
