On 5/30/22 10:09, Dan Carpenter wrote: > Hi Dmitry, > > url: https://github.com/intel-lab-lkp/linux/commits/Dmitry-Osipenko/Add-generic-memory-shrinker-to-VirtIO-GPU-and-Panfrost-DRM-drivers/20220527-075717 > base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cdeffe87f790dfd1baa193020411ce9a538446d7 > config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20220527/202205272155.MxDiru43-lkp@xxxxxxxxx/config ) > compiler: gcc-11 (Debian 11.3.0-1) 11.3.0 > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > New smatch warnings: > drivers/gpu/drm/drm_gem_shmem_helper.c:226 drm_gem_shmem_set_evictable() warn: inconsistent returns 'shmem->base.resv'. > drivers/gpu/drm/drm_gem_shmem_helper.c:253 drm_gem_shmem_set_purgeable() warn: inconsistent returns 'shmem->base.resv'. > drivers/gpu/drm/drm_gem_shmem_helper.c:703 drm_gem_shmem_fault() error: we previously assumed 'shmem->pages' could be null (see line 694) > > vim +226 drivers/gpu/drm/drm_gem_shmem_helper.c > > 875fd932de880a Dmitry Osipenko 2022-05-27 215 int drm_gem_shmem_set_evictable(struct drm_gem_shmem_object *shmem) > 875fd932de880a Dmitry Osipenko 2022-05-27 216 { > 875fd932de880a Dmitry Osipenko 2022-05-27 217 dma_resv_lock(shmem->base.resv, NULL); > 875fd932de880a Dmitry Osipenko 2022-05-27 218 > 875fd932de880a Dmitry Osipenko 2022-05-27 219 if (shmem->madv < 0) > 875fd932de880a Dmitry Osipenko 2022-05-27 220 return -ENOMEM; > > Unlock before returning? > > 875fd932de880a Dmitry Osipenko 2022-05-27 221 > 875fd932de880a Dmitry Osipenko 2022-05-27 222 shmem->eviction_enabled = true; > 875fd932de880a Dmitry Osipenko 2022-05-27 223 > 875fd932de880a Dmitry Osipenko 2022-05-27 224 dma_resv_unlock(shmem->base.resv); > 875fd932de880a Dmitry Osipenko 2022-05-27 225 > 875fd932de880a Dmitry Osipenko 2022-05-27 @226 return 0; > 875fd932de880a Dmitry Osipenko 2022-05-27 227 } > 875fd932de880a Dmitry Osipenko 2022-05-27 228 EXPORT_SYMBOL_GPL(drm_gem_shmem_set_evictable); > 875fd932de880a Dmitry Osipenko 2022-05-27 229 > 875fd932de880a Dmitry Osipenko 2022-05-27 230 /** > 875fd932de880a Dmitry Osipenko 2022-05-27 231 * drm_gem_shmem_set_purgeable() - Make GEM purgeable by memory shrinker > 875fd932de880a Dmitry Osipenko 2022-05-27 232 * @shmem: shmem GEM object > 875fd932de880a Dmitry Osipenko 2022-05-27 233 * > 875fd932de880a Dmitry Osipenko 2022-05-27 234 * Tell memory shrinker that this GEM can be purged. Initially purging is > 875fd932de880a Dmitry Osipenko 2022-05-27 235 * disabled for all GEMs. If GEM was purged, then -ENOMEM is returned. > 875fd932de880a Dmitry Osipenko 2022-05-27 236 * > 875fd932de880a Dmitry Osipenko 2022-05-27 237 * Returns: > 875fd932de880a Dmitry Osipenko 2022-05-27 238 * 0 on success or a negative error code on failure. > 875fd932de880a Dmitry Osipenko 2022-05-27 239 */ > 875fd932de880a Dmitry Osipenko 2022-05-27 240 int drm_gem_shmem_set_purgeable(struct drm_gem_shmem_object *shmem) > 875fd932de880a Dmitry Osipenko 2022-05-27 241 { > 875fd932de880a Dmitry Osipenko 2022-05-27 242 dma_resv_lock(shmem->base.resv, NULL); > 875fd932de880a Dmitry Osipenko 2022-05-27 243 > 875fd932de880a Dmitry Osipenko 2022-05-27 244 if (shmem->madv < 0) > 875fd932de880a Dmitry Osipenko 2022-05-27 245 return -ENOMEM; > > Same. Indeed, thanks! -- Best regards, Dmitry