summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Rientjes <rientjes@google.com>2012-01-09 22:19:45 +0100
committerPekka Enberg <penberg@kernel.org>2012-01-10 20:31:09 +0100
commit74ee4ef1f901fbb014bdcdc9171d126490ce2b62 (patch)
tree47f33960c42e4884f56136a61d5dc024895a810e
parentslub: Extract get_freelist from __slab_alloc (diff)
downloadlinux-74ee4ef1f901fbb014bdcdc9171d126490ce2b62.tar.xz
linux-74ee4ef1f901fbb014bdcdc9171d126490ce2b62.zip
slub: disallow changing cpu_partial from userspace for debug caches
For caches with debugging enabled, "slub: Switch per cpu partial page support off for debugging" changes cpu_partial to 0. It shouldn't be tunable from userspace for such caches, otherwise the same accounting issues arise during validation. This patch disallows tuning /sys/kernel/slab/cache/cpu_partial to be non- zero for caches with debugging enabled. Acked-by: Christoph Lameter <cl@linux.com> Signed-off-by: David Rientjes <rientjes@google.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
-rw-r--r--mm/slub.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/slub.c b/mm/slub.c
index 6dc79f8e6ce9..a47df0aa5d36 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -4649,6 +4649,8 @@ static ssize_t cpu_partial_store(struct kmem_cache *s, const char *buf,
err = strict_strtoul(buf, 10, &objects);
if (err)
return err;
+ if (objects && kmem_cache_debug(s))
+ return -EINVAL;
s->cpu_partial = objects;
flush_all(s);