| From fd49e03280e596e54edb93a91bc96170f8e97e4a Mon Sep 17 00:00:00 2001 |
| From: Matteo Croce <mcroce@linux.microsoft.com> |
| Date: Mon, 6 Jul 2020 19:37:36 -0700 |
| Subject: pstore: Fix linking when crypto API disabled |
| |
| From: Matteo Croce <mcroce@linux.microsoft.com> |
| |
| commit fd49e03280e596e54edb93a91bc96170f8e97e4a upstream. |
| |
| When building a kernel with CONFIG_PSTORE=y and CONFIG_CRYPTO not set, |
| a build error happens: |
| |
| ld: fs/pstore/platform.o: in function `pstore_dump': |
| platform.c:(.text+0x3f9): undefined reference to `crypto_comp_compress' |
| ld: fs/pstore/platform.o: in function `pstore_get_backend_records': |
| platform.c:(.text+0x784): undefined reference to `crypto_comp_decompress' |
| |
| This because some pstore code uses crypto_comp_(de)compress regardless |
| of the CONFIG_CRYPTO status. Fix it by wrapping the (de)compress usage |
| by IS_ENABLED(CONFIG_PSTORE_COMPRESS) |
| |
| Signed-off-by: Matteo Croce <mcroce@linux.microsoft.com> |
| Link: https://lore.kernel.org/lkml/20200706234045.9516-1-mcroce@linux.microsoft.com |
| Fixes: cb3bee0369bc ("pstore: Use crypto compress API") |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Kees Cook <keescook@chromium.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/pstore/platform.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| --- a/fs/pstore/platform.c |
| +++ b/fs/pstore/platform.c |
| @@ -275,6 +275,9 @@ static int pstore_compress(const void *i |
| { |
| int ret; |
| |
| + if (!IS_ENABLED(CONFIG_PSTORE_COMPRESSION)) |
| + return -EINVAL; |
| + |
| ret = crypto_comp_compress(tfm, in, inlen, out, &outlen); |
| if (ret) { |
| pr_err("crypto_comp_compress failed, ret = %d!\n", ret); |
| @@ -661,7 +664,7 @@ static void decompress_record(struct pst |
| int unzipped_len; |
| char *unzipped, *workspace; |
| |
| - if (!record->compressed) |
| + if (!IS_ENABLED(CONFIG_PSTORE_COMPRESSION) || !record->compressed) |
| return; |
| |
| /* Only PSTORE_TYPE_DMESG support compression. */ |