The dynamic error message printed if CONFIG_RD_$ALG compression support
is missing needn't be propagated up to the caller via a static buffer.
Print it immediately via pr_err() and set @message to a const string to
flag error.

Before:
   text    data     bss     dec     hex filename
   7695    1102       8    8805    2265 ./init/initramfs.o

After:
   text    data     bss     dec     hex filename
   7683    1006       8    8697    21f9 ./init/initramfs.o

Signed-off-by: David Disseldorp <dd...@suse.de>
---
 init/initramfs.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/init/initramfs.c b/init/initramfs.c
index 99f3cac10d392..f946b7680867b 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -511,7 +511,6 @@ char * __init unpack_to_rootfs(char *buf, unsigned long len)
        long written;
        decompress_fn decompress;
        const char *compress_name;
-       static __initdata char msg_buf[64];
 
        /*
         * @cpio_buf can be used for staging the 110 byte newc/crc cpio header,
@@ -551,12 +550,9 @@ char * __init unpack_to_rootfs(char *buf, unsigned long 
len)
                        if (res)
                                error("decompressor failed");
                } else if (compress_name) {
-                       if (!message) {
-                               snprintf(msg_buf, sizeof msg_buf,
-                                        "compression method %s not configured",
-                                        compress_name);
-                               message = msg_buf;
-                       }
+                       pr_err("compression method %s not configured\n",
+                              compress_name);
+                       error("decompressor failed");
                } else
                        error("invalid magic at start of compressed archive");
                if (state != Reset)
-- 
2.43.0


Reply via email to