]> git.baikalelectronics.ru Git - kernel.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)
commitd7ff26f6ea7cd6912bdb5cc55125fc8b937b7e05
treec20dbb3b053b5cf7b9ef5463cfbec9d16a9d77c8
parent937b0c0c90a969302b12c38866e21485bc5248e7
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