From 1807f82e39b0f6f66e8ed1c82f8207d2cd68e720 Mon Sep 17 00:00:00 2001 From: Gleb Chesnokov Date: Sat, 3 Sep 2022 16:17:10 +0300 Subject: [PATCH] scst_mem: Check for errors in scst_sgv_pools_init() The register_shrinker() function may return an error since Linux kernel v3.12. --- scst/src/scst_mem.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scst/src/scst_mem.c b/scst/src/scst_mem.c index f4f4b4096..fb438b505 100644 --- a/scst/src/scst_mem.c +++ b/scst/src/scst_mem.c @@ -1798,7 +1798,10 @@ int scst_sgv_pools_init(unsigned long mem_hwmark, unsigned long mem_lwmark) sgv_shrinker.shrink = sgv_shrink; #endif sgv_shrinker.seeks = DEFAULT_SEEKS; - register_shrinker(&sgv_shrinker, "scst-sgv"); + + res = register_shrinker(&sgv_shrinker, "scst-sgv"); + if (unlikely(res)) + goto out_free_per_cpu_dma; out: TRACE_EXIT_RES(res); @@ -1828,7 +1831,7 @@ out_free_pool: kmem_cache_destroy(sgv_pool_cachep); out_err: - res = -ENOMEM; + res = res ?: -ENOMEM; goto out; }