bcm27xx: remove linux 5.10 compatibility
[openwrt/staging/chunkeey.git] / target / linux / bcm27xx / patches-5.10 / 950-0251-zswap-Defer-zswap-initialisation.patch
diff --git a/target/linux/bcm27xx/patches-5.10/950-0251-zswap-Defer-zswap-initialisation.patch b/target/linux/bcm27xx/patches-5.10/950-0251-zswap-Defer-zswap-initialisation.patch
deleted file mode 100644 (file)
index 111d7dc..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From 164ec4ae01c28cd627d085c19f5e1c631b4cccff Mon Sep 17 00:00:00 2001
-From: Phil Elwell <phil@raspberrypi.com>
-Date: Tue, 5 May 2020 15:23:32 +0100
-Subject: [PATCH] zswap: Defer zswap initialisation
-
-Enabling zswap support in the kernel configuration costs about 1.5MB
-of RAM, even when zswap is not enabled at runtime. This cost can be
-reduced significantly by deferring initialisation (including pool
-creation) until the "enabled" parameter is set to true. There is a
-small cost to this in that some initialisation code has to remain in
-memory after the init phase, just in case they are needed later,
-but the total size increase is negligible.
-
-See: https://github.com/raspberrypi/linux/pull/3432
-
-Signed-off-by: Phil Elwell <phil@raspberrypi.com>
----
- mm/zswap.c | 53 +++++++++++++++++++++++++++++------------------------
- 1 file changed, 29 insertions(+), 24 deletions(-)
-
---- a/mm/zswap.c
-+++ b/mm/zswap.c
-@@ -592,8 +592,9 @@ error:
-       return NULL;
- }
--static __init struct zswap_pool *__zswap_pool_create_fallback(void)
-+static bool zswap_try_pool_create(void)
- {
-+      struct zswap_pool *pool;
-       bool has_comp, has_zpool;
-       has_comp = crypto_has_comp(zswap_compressor, 0, 0);
-@@ -629,9 +630,21 @@ static __init struct zswap_pool *__zswap
-       }
-       if (!has_comp || !has_zpool)
--              return NULL;
-+              return false;
-+
-+      pool = zswap_pool_create(zswap_zpool_type, zswap_compressor);
--      return zswap_pool_create(zswap_zpool_type, zswap_compressor);
-+      if (pool) {
-+              pr_info("loaded using pool %s/%s\n", pool->tfm_name,
-+                      zpool_get_type(pool->zpool));
-+              list_add(&pool->list, &zswap_pools);
-+              zswap_has_pool = true;
-+      } else {
-+              pr_err("pool creation failed\n");
-+              zswap_enabled = false;
-+      }
-+
-+      return zswap_enabled;
- }
- static void zswap_pool_destroy(struct zswap_pool *pool)
-@@ -804,16 +817,19 @@ static int zswap_zpool_param_set(const c
- static int zswap_enabled_param_set(const char *val,
-                                  const struct kernel_param *kp)
- {
-+      int ret;
-+
-       if (zswap_init_failed) {
-               pr_err("can't enable, initialization failed\n");
-               return -ENODEV;
-       }
--      if (!zswap_has_pool && zswap_init_started) {
--              pr_err("can't enable, no pool configured\n");
--              return -ENODEV;
--      }
--      return param_set_bool(val, kp);
-+      ret = param_set_bool(val, kp);
-+      if (!ret && zswap_enabled && zswap_init_started && !zswap_has_pool)
-+              if (!zswap_try_pool_create())
-+                      ret = -ENODEV;
-+
-+      return ret;
- }
- /*********************************
-@@ -1314,7 +1330,6 @@ static void __exit zswap_debugfs_exit(vo
- **********************************/
- static int __init init_zswap(void)
- {
--      struct zswap_pool *pool;
-       int ret;
-       zswap_init_started = true;
-@@ -1338,29 +1353,19 @@ static int __init init_zswap(void)
-       if (ret)
-               goto hp_fail;
--      pool = __zswap_pool_create_fallback();
--      if (pool) {
--              pr_info("loaded using pool %s/%s\n", pool->tfm_name,
--                      zpool_get_type(pool->zpool));
--              list_add(&pool->list, &zswap_pools);
--              zswap_has_pool = true;
--      } else {
--              pr_err("pool creation failed\n");
--              zswap_enabled = false;
--      }
--
-       shrink_wq = create_workqueue("zswap-shrink");
-       if (!shrink_wq)
--              goto fallback_fail;
-+              goto hp_fail;
-       frontswap_register_ops(&zswap_frontswap_ops);
-       if (zswap_debugfs_init())
-               pr_warn("debugfs initialization failed\n");
-+
-+      if (zswap_enabled)
-+              zswap_try_pool_create();
-+
-       return 0;
--fallback_fail:
--      if (pool)
--              zswap_pool_destroy(pool);
- hp_fail:
-       cpuhp_remove_state(CPUHP_MM_ZSWP_MEM_PREPARE);
- dstmem_fail: