The quilt patch titled Subject: mm-zswap-delay-the-initialization-of-zswap-v9 has been removed from the -mm tree. Its filename was mm-zswap-delay-the-initialization-of-zswap-v9.patch This patch was dropped because it was folded into mm-zswap-delay-the-initialization-of-zswap.patch ------------------------------------------------------ From: Liu Shixin <liushixin2@xxxxxxxxxx> Subject: mm-zswap-delay-the-initialization-of-zswap-v9 Date: Tue, 11 Apr 2023 17:36:32 +0800 fix some pattern problem suggested by Christoph Link: https://lkml.kernel.org/r/20230411093632.822290-4-liushixin2@xxxxxxxxxx Signed-off-by: Liu Shixin <liushixin2@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: Dan Streetman <ddstreet@xxxxxxxx> Cc: Nathan Chancellor <nathan@xxxxxxxxxx> Cc: Seth Jennings <sjenning@xxxxxxxxxx> Cc: Vitaly Wool <vitaly.wool@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/zswap.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) --- a/mm/zswap.c~mm-zswap-delay-the-initialization-of-zswap-v9 +++ a/mm/zswap.c @@ -760,13 +760,22 @@ static void zswap_pool_put(struct zswap_ * param callbacks **********************************/ +static bool zswap_pool_changed(const char *s, const struct kernel_param *kp) +{ + /* no change required */ + if (!strcmp(s, *(char **)kp->arg) && zswap_has_pool) + return false; + return true; +} + /* val must be a null-terminated string */ static int __zswap_param_set(const char *val, const struct kernel_param *kp, char *type, char *compressor) { struct zswap_pool *pool, *put_pool = NULL; char *s = strstrip((char *)val); - int ret; + int ret = 0; + bool new_pool = false; mutex_lock(&zswap_init_lock); switch (zswap_init_state) { @@ -775,22 +784,20 @@ static int __zswap_param_set(const char * don't create a pool; that's done during init. */ ret = param_set_charp(s, kp); - mutex_unlock(&zswap_init_lock); - return ret; + break; case ZSWAP_INIT_SUCCEED: - /* no change required */ - if (!strcmp(s, *(char **)kp->arg) && zswap_has_pool) { - mutex_unlock(&zswap_init_lock); - return 0; - } + new_pool = zswap_pool_changed(s, kp); break; case ZSWAP_INIT_FAILED: pr_err("can't set param, initialization failed\n"); - mutex_unlock(&zswap_init_lock); - return -ENODEV; + ret = -ENODEV; } mutex_unlock(&zswap_init_lock); + /* no need to create a new pool, return directly */ + if (!new_pool) + return ret; + if (!type) { if (!zpool_has_pool(s)) { pr_err("zpool %s not available\n", s); @@ -881,7 +888,7 @@ static int zswap_enabled_param_set(const { int ret = -ENODEV; - /*if this is load-time (pre-init) param setting, only set param.*/ + /* if this is load-time (pre-init) param setting, only set param. */ if (system_state != SYSTEM_RUNNING) return param_set_bool(val, kp); _ Patches currently in -mm which might be from liushixin2@xxxxxxxxxx are mm-zswap-remove-zswap_entry_cache_createdestroy-helper-function.patch mm-zswap-replace-zswap_init_started-failed-with-zswap_init_state.patch mm-zswap-delay-the-initialization-of-zswap.patch mm-hwpoison-support-recovery-from-hugepage-copy-on-write-faults.patch