diff --git a/scst/src/scst_mem.c b/scst/src/scst_mem.c index b29e9af7a..d5a67d2eb 100644 --- a/scst/src/scst_mem.c +++ b/scst/src/scst_mem.c @@ -1553,8 +1553,6 @@ static void sgv_pool_destroy(struct sgv_pool *pool) TRACE_ENTRY(); - cancel_delayed_work_sync(&pool->sgv_purge_work); - sgv_pool_flush(pool); mutex_lock(&sgv_pools_mutex); @@ -1567,6 +1565,8 @@ static void sgv_pool_destroy(struct sgv_pool *pool) scst_sgv_sysfs_del(pool); #endif + cancel_delayed_work_sync(&pool->sgv_purge_work); + for (i = 0; i < pool->max_caches; i++) { if (pool->caches[i]) kmem_cache_destroy(pool->caches[i]); @@ -1797,8 +1797,6 @@ void scst_sgv_pools_deinit(void) sgv_pool_destroy(sgv_norm_pool); sgv_pool_destroy(sgv_norm_clust_pool); - flush_scheduled_work(); - kmem_cache_destroy(sgv_pool_cachep); TRACE_EXIT();