aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMinchan Kim <minchan@kernel.org>2017-04-13 17:56:40 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-04-21 03:31:19 -0400
commitd19f745ea3a989f9d037dfbc26abcccfe7710723 (patch)
treeb556e0b360a36c00773643779a644cbe673ede3f
parent5c9d0832022959a8879e082c745281865f5336f0 (diff)
zsmalloc: expand class bit
commit 85d492f28d056c40629fc25d79f54da618a29dc4 upstream. Now 64K page system, zsamlloc has 257 classes so 8 class bit is not enough. With that, it corrupts the system when zsmalloc stores 65536byte data(ie, index number 256) so that this patch increases class bit for simple fix for stable backport. We should clean up this mess soon. index size 0 32 1 288 .. .. 204 52256 256 65536 Fixes: 3783689a1 ("zsmalloc: introduce zspage structure") Link: http://lkml.kernel.org/r/1492042622-12074-3-git-send-email-minchan@kernel.org Signed-off-by: Minchan Kim <minchan@kernel.org> Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--mm/zsmalloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index b0bc023d25c5..1689bb58e0d1 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -280,7 +280,7 @@ struct zs_pool {
280struct zspage { 280struct zspage {
281 struct { 281 struct {
282 unsigned int fullness:FULLNESS_BITS; 282 unsigned int fullness:FULLNESS_BITS;
283 unsigned int class:CLASS_BITS; 283 unsigned int class:CLASS_BITS + 1;
284 unsigned int isolated:ISOLATED_BITS; 284 unsigned int isolated:ISOLATED_BITS;
285 unsigned int magic:MAGIC_VAL_BITS; 285 unsigned int magic:MAGIC_VAL_BITS;
286 }; 286 };