Just make sure the maple_node_cache has a percpu array of size 32.
Will break with CONFIG_SLAB.
---
lib/maple_tree.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/maple_tree.c b/lib/maple_tree.c
index bb24d84a4922..d9e7088fd9a7 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -6213,9 +6213,16 @@ bool mas_nomem(struct ma_state *mas, gfp_t gfp)
void __init maple_tree_init(void)
{
+ int ret;
+
maple_node_cache = kmem_cache_create("maple_node",
sizeof(struct maple_node), sizeof(struct maple_node),
- SLAB_PANIC, NULL);
+ SLAB_PANIC | SLAB_NO_MERGE, NULL);
+
+ ret = kmem_cache_setup_percpu_array(maple_node_cache, 32);
+
+ if (ret)
+ pr_warn("error %d creating percpu_array for maple_node_cache\n", ret);
}
/**
--
2.43.0