diff --git c/drivers/gpu/drm/xe/xe_shrinker.c i/drivers/gpu/drm/xe/xe_shrinker.c --- c/drivers/gpu/drm/xe/xe_shrinker.c +++ i/drivers/gpu/drm/xe/xe_shrinker.c @@ -71,6 +71,12 @@ static bool __xe_shrinker_runtime_pm_get(struct xe_shrinker *shrinker) return false; } +static void xe_shrinker_runtime_pm_put(struct xe_shrinker *shrinker, bool runtime_pm) +{ + if (runtime_pm) + xe_pm_runtime_put(shrinker->xe); +} + static int __xe_shrinker_walk(struct xe_shrinker *shrinker, struct ttm_operation_ctx *ctx, const struct xe_bo_shrink_flags flags, @@ -121,8 +127,7 @@ static int __xe_shrinker_walk(struct xe_shrinker *shrinker, } out: - if (rpm) - xe_pm_runtime_put(xe); + xe_shrinker_runtime_pm_put(shrinker, rpm); return ret; } @@ -213,12 +218,6 @@ static bool xe_shrinker_runtime_pm_get(struct xe_shrinker *shrinker, bool force, return __xe_shrinker_runtime_pm_get(shrinker); } -static void xe_shrinker_runtime_pm_put(struct xe_shrinker *shrinker, bool runtime_pm) -{ - if (runtime_pm) - xe_pm_runtime_put(shrinker->xe); -} - static unsigned long xe_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc) { struct xe_shrinker *shrinker = to_xe_shrinker(shrink);