Re: [PATCH] drm/msm: Fix shrinker deadlock

From: kernel test robot

Date: Sun May 10 2026 - 13:08:58 EST


Hi Daniel,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on linus/master v7.1-rc2 next-20260508]
[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/Daniel-J-Blueman/drm-msm-Fix-shrinker-deadlock/20260510-132942
base: https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next
patch link: https://lore.kernel.org/r/20260508065722.18785-1-daniel%40quora.org
patch subject: [PATCH] drm/msm: Fix shrinker deadlock
config: um-allyesconfig (https://download.01.org/0day-ci/archive/20260511/202605110127.kDfyU1Oh-lkp@xxxxxxxxx/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260511/202605110127.kDfyU1Oh-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605110127.kDfyU1Oh-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

drivers/gpu/drm/msm/msm_gem_shrinker.c: In function 'evict':
>> drivers/gpu/drm/msm/msm_gem_shrinker.c:125:30: error: passing argument 1 of 'with_vm_locks' from incompatible pointer type [-Wincompatible-pointer-types]
125 | return with_vm_locks(ticket, msm_gem_evict, obj);
| ^~~~~~
| |
| struct ww_acquire_ctx *
drivers/gpu/drm/msm/msm_gem_shrinker.c:46:22: note: expected 'void (*)(struct drm_gem_object *)' but argument is of type 'struct ww_acquire_ctx *'
46 | with_vm_locks(void (*fn)(struct drm_gem_object *obj),
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/msm/msm_gem_shrinker.c:125:38: error: passing argument 2 of 'with_vm_locks' from incompatible pointer type [-Wincompatible-pointer-types]
125 | return with_vm_locks(ticket, msm_gem_evict, obj);
| ^~~~~~~~~~~~~
| |
| void (*)(struct drm_gem_object *)
drivers/gpu/drm/msm/msm_gem_shrinker.c:47:38: note: expected 'struct drm_gem_object *' but argument is of type 'void (*)(struct drm_gem_object *)'
47 | struct drm_gem_object *obj)
| ~~~~~~~~~~~~~~~~~~~~~~~^~~
>> drivers/gpu/drm/msm/msm_gem_shrinker.c:125:16: error: too many arguments to function 'with_vm_locks'
125 | return with_vm_locks(ticket, msm_gem_evict, obj);
| ^~~~~~~~~~~~~
drivers/gpu/drm/msm/msm_gem_shrinker.c:46:1: note: declared here
46 | with_vm_locks(void (*fn)(struct drm_gem_object *obj),
| ^~~~~~~~~~~~~


vim +/with_vm_locks +125 drivers/gpu/drm/msm/msm_gem_shrinker.c

6afb0750dba05c Rob Clark 2021-04-05 115
63f17ef834284d Rob Clark 2021-04-05 116 static bool
02070f04987524 Rob Clark 2025-06-29 117 evict(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket)
63f17ef834284d Rob Clark 2021-04-05 118 {
b352ba54a82072 Rob Clark 2022-08-02 119 if (is_unevictable(to_msm_bo(obj)))
63f17ef834284d Rob Clark 2021-04-05 120 return false;
63f17ef834284d Rob Clark 2021-04-05 121
b352ba54a82072 Rob Clark 2022-08-02 122 if (msm_gem_active(obj))
01780d02634a3a Rob Clark 2022-08-02 123 return false;
01780d02634a3a Rob Clark 2022-08-02 124
fe4952b5f27cca Rob Clark 2025-06-29 @125 return with_vm_locks(ticket, msm_gem_evict, obj);
63f17ef834284d Rob Clark 2021-04-05 126 }
63f17ef834284d Rob Clark 2021-04-05 127

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki