]> git.ipfire.org Git - thirdparty/linux.git/commit
zram: do not waste zram_table_entry flags bits
authorSergey Senozhatsky <senozhatsky@chromium.org>
Mon, 12 Sep 2022 15:27:44 +0000 (00:27 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 3 Oct 2022 21:03:09 +0000 (14:03 -0700)
commitf635725c3905e755a8c3e2dc8cab7fcd0d38977f
treec20dbb3b053b5cf7b9ef5463cfbec9d16a9d77c8
parenta18709442869e55c42969142d5abf6beb776dbba
zram: do not waste zram_table_entry flags bits

zram_table_entry::flags stores object size in the lower bits and zram
pageflags in the upper bits.  However, for some reason, we use 24 lower
bits, while maximum zram object size is PAGE_SIZE, which requires
PAGE_SHIFT bits (up to 16 on arm64).  This wastes 24 - PAGE_SHIFT bits
that we can use for additional zram pageflags instead.

Also add a BUILD_BUG_ON() to alert us should we run out of bits in
zram_table_entry::flags.

Link: https://lkml.kernel.org/r/20220912152744.527438-1-senozhatsky@chromium.org
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Reviewed-by: Brian Geffon <bgeffon@google.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Cc: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/block/zram/zram_drv.c
drivers/block/zram/zram_drv.h