]> Git Repo - linux.git/commitdiff
pstore: Fix linking when crypto API disabled
authorMatteo Croce <[email protected]>
Tue, 7 Jul 2020 02:37:36 +0000 (19:37 -0700)
committerKees Cook <[email protected]>
Tue, 7 Jul 2020 02:42:31 +0000 (19:42 -0700)
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 <[email protected]>
Link: https://lore.kernel.org/lkml/[email protected]
Fixes: cb3bee0369bc ("pstore: Use crypto compress API")
Cc: [email protected]
Signed-off-by: Kees Cook <[email protected]>
fs/pstore/platform.c

index a9e297eefdff24163dc30d02697214f2d81cd352..36714df37d5d81df8c9b3671cd602c7413579c58 100644 (file)
@@ -269,6 +269,9 @@ static int pstore_compress(const void *in, void *out,
 {
        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);
@@ -668,7 +671,7 @@ static void decompress_record(struct pstore_record *record)
        int unzipped_len;
        char *unzipped, *workspace;
 
-       if (!record->compressed)
+       if (!IS_ENABLED(CONFIG_PSTORE_COMPRESSION) || !record->compressed)
                return;
 
        /* Only PSTORE_TYPE_DMESG support compression. */
This page took 0.057622 seconds and 4 git commands to generate.