mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
pstore: Use crypto compress API
In the pstore compression part, we use zlib/lzo/lz4/lz4hc/842 compression algorithm API to implement pstore compression backends. But there are many repeat codes in these implementations. This patch uses crypto compress API to simplify these codes. 1) rewrite allocate_buf_for_compression, free_buf_for_compression, pstore_compress, pstore_decompress functions using crypto compress API. 2) drop compress, decompress, allocate, free functions in pstore_zbackend, and add zbufsize function to get each different compress buffer size. 3) use late_initcall to call ramoops_init later, to make sure the crypto subsystem has already initialized. 4) use 'unsigned int' type instead of 'size_t' in pstore_compress, pstore_decompress functions' length arguments. 5) rename 'zlib' to 'deflate' to follow the crypto API's name convention. Signed-off-by: Geliang Tang <geliangtang@gmail.com> [kees: tweaked error messages on allocation failures and Kconfig help] Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
@@ -12,51 +12,47 @@ config PSTORE
|
||||
If you don't have a platform persistent store driver,
|
||||
say N.
|
||||
|
||||
config PSTORE_ZLIB_COMPRESS
|
||||
bool "ZLIB compression"
|
||||
config PSTORE_DEFLATE_COMPRESS
|
||||
bool "DEFLATE (ZLIB) compression"
|
||||
default y
|
||||
depends on PSTORE
|
||||
select ZLIB_DEFLATE
|
||||
select ZLIB_INFLATE
|
||||
select CRYPTO_DEFLATE
|
||||
help
|
||||
This option enables ZLIB compression algorithm support.
|
||||
This option enables DEFLATE (also known as ZLIB) compression
|
||||
algorithm support.
|
||||
|
||||
config PSTORE_LZO_COMPRESS
|
||||
bool "LZO compression"
|
||||
depends on PSTORE
|
||||
select LZO_COMPRESS
|
||||
select LZO_DECOMPRESS
|
||||
select CRYPTO_LZO
|
||||
help
|
||||
This option enables LZO compression algorithm support.
|
||||
|
||||
config PSTORE_LZ4_COMPRESS
|
||||
bool "LZ4 compression"
|
||||
depends on PSTORE
|
||||
select LZ4_COMPRESS
|
||||
select LZ4_DECOMPRESS
|
||||
select CRYPTO_LZ4
|
||||
help
|
||||
This option enables LZ4 compression algorithm support.
|
||||
|
||||
config PSTORE_LZ4HC_COMPRESS
|
||||
bool "LZ4HC compression"
|
||||
depends on PSTORE
|
||||
select LZ4HC_COMPRESS
|
||||
select LZ4_DECOMPRESS
|
||||
select CRYPTO_LZ4HC
|
||||
help
|
||||
This option enables LZ4HC (high compression) mode algorithm.
|
||||
|
||||
config PSTORE_842_COMPRESS
|
||||
bool "842 compression"
|
||||
depends on PSTORE
|
||||
select 842_COMPRESS
|
||||
select 842_DECOMPRESS
|
||||
select CRYPTO_842
|
||||
help
|
||||
This option enables 842 compression algorithm support.
|
||||
|
||||
config PSTORE_COMPRESS
|
||||
def_bool y
|
||||
depends on PSTORE
|
||||
depends on PSTORE_ZLIB_COMPRESS || PSTORE_LZO_COMPRESS || \
|
||||
depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS || \
|
||||
PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \
|
||||
PSTORE_842_COMPRESS
|
||||
|
||||
@@ -69,12 +65,12 @@ choice
|
||||
the kernel command line.
|
||||
|
||||
Currently, pstore has support for 5 compression algorithms:
|
||||
zlib, lzo, lz4, lz4hc and 842.
|
||||
deflate, lzo, lz4, lz4hc and 842.
|
||||
|
||||
The default compression algorithm is zlib.
|
||||
The default compression algorithm is deflate.
|
||||
|
||||
config PSTORE_ZLIB_COMPRESS_DEFAULT
|
||||
bool "zlib" if PSTORE_ZLIB_COMPRESS=y
|
||||
config PSTORE_DEFLATE_COMPRESS_DEFAULT
|
||||
bool "deflate" if PSTORE_DEFLATE_COMPRESS=y
|
||||
|
||||
config PSTORE_LZO_COMPRESS_DEFAULT
|
||||
bool "lzo" if PSTORE_LZO_COMPRESS=y
|
||||
@@ -93,7 +89,7 @@ endchoice
|
||||
config PSTORE_COMPRESS_DEFAULT
|
||||
string
|
||||
depends on PSTORE_COMPRESS
|
||||
default "zlib" if PSTORE_ZLIB_COMPRESS_DEFAULT
|
||||
default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT
|
||||
default "lzo" if PSTORE_LZO_COMPRESS_DEFAULT
|
||||
default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT
|
||||
default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -938,7 +938,7 @@ static int __init ramoops_init(void)
|
||||
ramoops_register_dummy();
|
||||
return platform_driver_register(&ramoops_driver);
|
||||
}
|
||||
postcore_initcall(ramoops_init);
|
||||
late_initcall(ramoops_init);
|
||||
|
||||
static void __exit ramoops_exit(void)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user