From nobody Wed Feb 11 22:55:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5EFC8C77B6E for ; Wed, 12 Apr 2023 21:22:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229994AbjDLVWt (ORCPT ); Wed, 12 Apr 2023 17:22:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53200 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229719AbjDLVWj (ORCPT ); Wed, 12 Apr 2023 17:22:39 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 020EE19A1 for ; Wed, 12 Apr 2023 14:22:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1681334514; i=j.neuschaefer@gmx.net; bh=w4sCM12T3GwE9Idp4Z+5KQM9o6BWvMigt3zMC505xKw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=EIthzBk7V9dTwGCevl2ID2eaBvJ99830DWe/E4B+7cEm17DwtfvhtH6sal9eMXI4P pbTzg+2Ukbp+YMO9gNMkrbrpkUx40LvdQ/C1rJsDUMPothsoLVLrJEE/4YCZRqw5Nw vc0jF19Y1J/resZculEGxxkm3tynBsAQGbqW85MVQtQie0FXETsYLUgLUhR6LpiOEI CPaTksxxq5e8MyO8jb1wb/81I1wj8ChMRpPH7o16uScDohkBuP17RaioouhQWNnR2B hG1Y76JCgA0fdU+pvE711NPZZahOJgV5S6OGywqviolcfVoA+j7sSTHBbJ60QPdb8E YSYTUnGOmeyYA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from probook ([185.66.193.41]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N4QsO-1qTERQ26K6-011Ohg; Wed, 12 Apr 2023 23:21:54 +0200 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-arm-kernel@lists.infradead.org Cc: Russell King , Nick Terrell , Arnd Bergmann , Tony Lindgren , Geert Uytterhoeven , Linus Walleij , Sebastian Reichel , Nick Hawkins , Christophe Leroy , =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= , Florian Fainelli , Nick Desaulniers , Xin Li , Seung-Woo Kim , Paul Bolle , Bart Van Assche , linux-kernel@vger.kernel.org, "Russell King (Oracle)" Subject: [PATCH 1/3] ARM: compressed: Pass the actual output length to the decompressor Date: Wed, 12 Apr 2023 23:21:24 +0200 Message-Id: <20230412212126.3966502-2-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230412212126.3966502-1-j.neuschaefer@gmx.net> References: <20230412212126.3966502-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:asTkI05mit0v6ML4tVuKmImFEuUsK0Fu2edpCC39+pLZg2GbPEp uz6X4ZfRT20DLhLPUl8stqEq3qsocNzWidlj25tSp8ODUYV8E61NLSs9J2c01K8hlt2sdnU 4eLQbQQmZxMqVRPCi2Ngsw55OhjDQbP4MkfpuGDNQgKVJ4vIs98dvmU1022PSQkJ8VjBKJl cm/3GJ/kQSIr4KYl47XQQ== UI-OutboundReport: notjunk:1;M01:P0:wYI1qy9oxMg=;ZVVUPgqmOo4gpzWIhJbrqdHAqdl N/GLP6C6/VhJGvwN/crPZrSQBl8auweY4IQwlsQeyi5qyOCoWzQrSaDquJfz55LP19Gppap3t wQObz41pOU4bLa6Y8cM9EBOrXquszDEKVaVgRj9GKRnftxUuIZh8ZQtpVd5bwHPZrTMC+KwmC wLmUVxzfg29ft2ErEWZACAYnztBqaYr5OkLudtrTyBRfc/ZqhBJkeucHwKA8GehJmrrmIikNq IJG2bv5jvss8+W8HYYjUlEAG/g1nSKi9lsQhGXXgECDzgwAU9Hv4KCbEIWG71L252b2BG64nf h0y9IxXFHTLJYRN6AFpDxP9DqPtaMAdmF0i5LnsUw21I/arDhvspGVpVpLr7XHSUc7KMqO3BK 4EbzfaFLHvm09ep3TfdNS1tV2WSj3VZ06UNkBI7EwOHzrWw86tBf0ebxyRI1BPXnfT7aYU+8Z Ce3wO+HJcOrMhhIpkz9eZdKOw8i3mDgTMe1cYVtlGyIA6vZ9W2Vo8178qismrg/v25MAejjxt oD+IEAeHOrGMp1/LhCad1/wybR/BG5fsHh5yhgNoSQeu5iuxoWYwXcGpoC5TZSMRYRsxLpdNT y96LkkEmGQ5H9DaX6Rp/f5ODudF614GI9aJH/vWYFcfVpnhdiY+Jo6BAY3Syeu2aSJo8kmv5f 2Ab6Z1bWpZYl33Ons8+F7v3B2ZT+4l8HxyDTnC2NhiYJVpDYqQCSlvy9V44cCkUfsfZUBlHIS TXeR/p5qQbkv2OwasfFVrbbswyhpDtgXH6camhneX7UAKkHx6A0o6gJtcLmhOBGxnH1i3dBvv MEGuUBs8b7AOfR/iMogtMFY5I47xjUIMoJCib7Y2S/hTtwAal7syElPOb58tuoVns9Hu3+QJx UuEVsGJUYFA2G3SXzk3WaHq057WuDBTvfAdFoxQZjG9XttxcWVKDLwH60H9VLbJEPYU53H02i ijJvIQ== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" ZSTD writes outside of the space that is necessary for the uncompressed data, when it is told it has unlimited output length. To fix this, pass the actual output length (the length of the uncompressed kernel) to the decompressor. The uncompressed length is already stored as a little endian 32-bit constant before the input_data_end symbol. Signed-off-by: Jonathan Neusch=C3=A4fer Reviewed-by: Florian Fainelli Reviewed-by: Linus Walleij Reviewed-by: Tony Lindgren --- arch/arm/boot/compressed/decompress.c | 4 ++-- arch/arm/boot/compressed/misc.c | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/arch/arm/boot/compressed/decompress.c b/arch/arm/boot/compress= ed/decompress.c index 74255e8198314..3d098b84ee391 100644 --- a/arch/arm/boot/compressed/decompress.c +++ b/arch/arm/boot/compressed/decompress.c @@ -59,7 +59,7 @@ extern char * strchrnul(const char *, int); #include "../../../../lib/decompress_unlz4.c" #endif -int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)) +int do_decompress(u8 *input, int len, u8 *output, int outlen, void (*error= )(char *x)) { - return __decompress(input, len, NULL, NULL, output, 0, NULL, error); + return __decompress(input, len, NULL, NULL, output, outlen, NULL, error); } diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/mis= c.c index abfed1aa2baa8..8402b29bccc82 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c @@ -22,6 +22,7 @@ unsigned int __machine_arch_type; #include /* for inline */ #include #include +#include #include "misc.h" #ifdef CONFIG_ARCH_EP93XX #include "misc-ep93xx.h" @@ -131,17 +132,24 @@ asmlinkage void __div0(void) error("Attempting division by 0!"); } -extern int do_decompress(u8 *input, int len, u8 *output, void (*error)(cha= r *x)); +extern int do_decompress(u8 *input, int len, u8 *output, int outlen, + void (*error)(char *x)); +static u32 get_inflated_image_size(void) +{ + return get_unaligned_le32(input_data_end - 4); +} void decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, unsigned long free_mem_ptr_end_p, int arch_id) { + unsigned long output_data_len; int ret; output_data =3D (unsigned char *)output_start; + output_data_len =3D get_inflated_image_size(); free_mem_ptr =3D free_mem_ptr_p; free_mem_end_ptr =3D free_mem_ptr_end_p; __machine_arch_type =3D arch_id; @@ -153,7 +161,7 @@ decompress_kernel(unsigned long output_start, unsigned = long free_mem_ptr_p, putstr("Uncompressing Linux..."); ret =3D do_decompress(input_data, input_data_end - input_data, - output_data, error); + output_data, output_data_len, error); if (ret) error("decompressor returned an error"); else -- 2.39.2 From nobody Wed Feb 11 22:55:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79CF4C77B6C for ; Wed, 12 Apr 2023 21:22:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229642AbjDLVWi (ORCPT ); Wed, 12 Apr 2023 17:22:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229535AbjDLVWg (ORCPT ); Wed, 12 Apr 2023 17:22:36 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2C5F19AB for ; Wed, 12 Apr 2023 14:22:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1681334517; i=j.neuschaefer@gmx.net; bh=2NkEXNzdSvLHDezuc3e95Ppy4PB6xfiWobcIdlZ2Mq0=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=heNVrkO8V0JA6m6qAVX76ayzgy0jtcDI1MX8C7Uaw1rjIM6LwY2sKB5xugYz/DCjs EHjy05Y8y7C0T6mTgOFZ/Y7sF6K8CSerenKbM+WlcoNtTWIhfYsvLXCxyoNdZB3YdW WvMqRZpixnHS6GkmzVSqSOpKeoUqHIyJysYaR/Y070FZQu7JbNZ2HFnYxjDEQ6jxR0 HuDvEOFIdLwHUwgS1a5mO5BZ207gY/+py1+idDeYXkonKeBgOdeVukjt3GcrQPLk96 +r8iSYHYYonhoaq+ru9UbK+tK6awcDk6+r2AajX8qxPD/NTEwDFV0shpMjszUzCK86 3doeYafMk3RFA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from probook ([185.66.193.41]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MqJqD-1q80IA0yBP-00nSaK; Wed, 12 Apr 2023 23:21:57 +0200 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-arm-kernel@lists.infradead.org Cc: Russell King , Nick Terrell , Arnd Bergmann , Tony Lindgren , Geert Uytterhoeven , Linus Walleij , Sebastian Reichel , Nick Hawkins , Christophe Leroy , =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= , Florian Fainelli , Nick Desaulniers , Xin Li , Seung-Woo Kim , Paul Bolle , Bart Van Assche , linux-kernel@vger.kernel.org, "Russell King (Oracle)" , Kees Cook Subject: [PATCH 2/3] ARM: compressed: Bump MALLOC_SIZE to 128 KiB Date: Wed, 12 Apr 2023 23:21:25 +0200 Message-Id: <20230412212126.3966502-3-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230412212126.3966502-1-j.neuschaefer@gmx.net> References: <20230412212126.3966502-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:wZAOHj/rfJsRhnvDlu5y2Pqf209q3GQxBJDNPOKh5N5aJE/28+u aiTYOIGQtqjo7mKUL2Ge+mmrO+v1wx2Ilp0Bdx3HscAKyzz1xnkU6JULKEApP5ucS3xblXQ M60hb/DFKUwIcjooNEcWjrBxnxOMlNYwgJ1WtCxlL7FpUo91a9QZIksmXVCkWneYb4k/kGV I8tTOyyrv5gc2q/o+z6Iw== UI-OutboundReport: notjunk:1;M01:P0:nNpt2s/KZB4=;FZwzPIEsOrYhKsQ2vHPC+bc7IdD xn2kjP1QkVU+suszm+o38bgUmA2AukMfClil/xRcfNU2btUGsh9K8lS7fELArAzWY9Ru3LntF bIjTwx1icmJ8KOHFE/aAJceVd9RMNrFfKuWMBaYBcR5S6HC2ZLPy0ee68z6tbPwh0QQAY8u7K VYY2ec2QzkbpGGmNov45aH9YBwFoHN3XAa+Po1Wx+V9Kz06d2SGzPhz0wmSVJiyG4682IzVmh bxpIKxiHbg3oA+Zlz3LteC832eimhRyrxNpz22Ld7dYzEfNae8ggZnMG9sIl9kjdUnZRQZHkO 1UW/PVZKY/C2+n0GfV0+/UkMuDXPmLL+4ywjD5ZLNnTbIpJQDolumKDG+1f2xH48hBf4H7BDl dM62mia8CRnL3feQtFWaL3JsMeA0X/KrlBJDTwryl7Ap66DmtP3jthw2GMJYJIg17Bn8/LA8Z Va8xp0GzI1PirUYfEfD9L3qO5ueXcr6nQz3fDSAkeyifNMwKAqhmAiFgZwylwtKJCWmGTdac1 HZMDqVTTYq3C6XFCvDqowArHekDGllKf0heEgbuhhefNBKV14NTcbX03JldFgqeofXWYN+X2H O35OHbalTd7UGKXmgQDb93UHqw6tmj+PQZsIMEnX+bvU79Zvfxf9KCEZ0WcBCGlzVvNOvyoiF K3ZTVQnkBGbtlx5GqChTVFkymcQ6GyDsySGlNix2iKFgdPw05YmrWiN4Raq/0t1RP0p63HkMh 8+z3/mjSPKIpLT4AXMC0dICmOzEoJBYQSOkrLSJqyKiS8gYshf7L0xJQzFDAhzvs773YgZhEG x/IqPFS3C8HFJShjcy8iI4WUNuR9ggypmZNKxF8eq0U2bOQ2SMJB6x3D3WumR4vFcqukoTZk2 GcEeVJEeJI63J9Prl7eLOGdcXbZk5qdE982Qs4lv9B3k7ORIN26wLOdFnkvVCiz4nX3qbJ73u RXX5ok5RznmjNVLEJADdazInIMY= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The ZSTD compressor needs about 100 KiB. Signed-off-by: Jonathan Neusch=C3=A4fer Reviewed-by: Florian Fainelli Reviewed-by: Linus Walleij --- arch/arm/boot/compressed/Makefile | 2 +- arch/arm/boot/compressed/head.S | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/M= akefile index 2ef651a78fa2a..dec565a5b1f21 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -69,7 +69,7 @@ ZTEXTADDR :=3D 0 ZBSSADDR :=3D ALIGN(8) endif -MALLOC_SIZE :=3D 65536 +MALLOC_SIZE :=3D 131072 AFLAGS_head.o +=3D -DTEXT_OFFSET=3D$(TEXT_OFFSET) -DMALLOC_SIZE=3D$(MALLOC= _SIZE) CPPFLAGS_vmlinux.lds :=3D -DTEXT_START=3D"$(ZTEXTADDR)" -DBSS_START=3D"$(Z= BSSADDR)" diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/hea= d.S index 9f406e9c0ea6f..23fbbe94da6e8 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S @@ -337,7 +337,7 @@ restart: adr r0, LC1 get_inflated_image_size r9, r10, lr #ifndef CONFIG_ZBOOT_ROM - /* malloc space is above the relocated stack (64k max) */ + /* malloc space is above the relocated stack (128k max) */ add r10, sp, #MALLOC_SIZE #else /* @@ -629,7 +629,7 @@ not_relocated: mov r0, #0 */ mov r0, r4 mov r1, sp @ malloc space above stack - add r2, sp, #MALLOC_SIZE @ 64k max + add r2, sp, #MALLOC_SIZE @ 128k max mov r3, r7 bl decompress_kernel -- 2.39.2 From nobody Wed Feb 11 22:55:48 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9BAF7C7619A for ; Wed, 12 Apr 2023 21:22:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229792AbjDLVWr (ORCPT ); Wed, 12 Apr 2023 17:22:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53202 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229711AbjDLVWj (ORCPT ); Wed, 12 Apr 2023 17:22:39 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 025921FFB for ; Wed, 12 Apr 2023 14:22:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1681334525; i=j.neuschaefer@gmx.net; bh=O8EbCtqxtHYhZl3Wus9zpBDqTyNgSWv3QZ/g5KBbeZI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=OEA1FhescqUfkOmuDqtkrGYkKZCy/DMEnk/LaDmgvBNs6cqpozk4B5wSbdVg4eX+0 jA55Hn+8mgTDiLiJxRBXYzrhFkxTydPaae1mBbv9EbLrqTZdeeWYTRdDeA2ysIHdWe T2au7ZXelcTcVcaqof0jmgi2RFJ3ed08v4XSOUmqSy2YPWT6FEYzFJDBE66qLlX55A G8gUPrynRofubUWeiO5vh20659JGdvj+8KHG/VPf2VS6bJ027Hv9i5RSjdo/5QZ4fC Jl1N5WtMV8ONYplNfVOxh77gD05BSzzrBsqyp4ZJf/e7cO1qJFFJOGGgoDoehmWX6a EffFTMVy6YMBQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from probook ([185.66.193.41]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N63RQ-1qShXR3GeW-016N3I; Wed, 12 Apr 2023 23:22:05 +0200 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-arm-kernel@lists.infradead.org Cc: Russell King , Nick Terrell , Arnd Bergmann , Tony Lindgren , Geert Uytterhoeven , Linus Walleij , Sebastian Reichel , Nick Hawkins , Christophe Leroy , =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= , Florian Fainelli , Nick Desaulniers , Xin Li , Seung-Woo Kim , Paul Bolle , Bart Van Assche , linux-kernel@vger.kernel.org, "Russell King (Oracle)" , Kees Cook Subject: [PATCH 3/3] ARM: compressed: Enable ZSTD compression Date: Wed, 12 Apr 2023 23:21:26 +0200 Message-Id: <20230412212126.3966502-4-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230412212126.3966502-1-j.neuschaefer@gmx.net> References: <20230412212126.3966502-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:NLKJGLSHU/mKfwCFI6t1irU5z5u/MoO8jr3NJmsYweqgxdI5Qej 8HKkQD920FU6M/3UgPqB3iyyeKTUracoZXdCvl6zR9JR8iCBQopsrIkYbHNi829tR8F85qN gfcXNwiXoc7xB1PZcoSLxNCks6kZ4E9WWqCJxk/io62ncpopqYU+SGyVLaLVgRb6vXLg/q0 nlxUZapXHoRUQp5KeUkCg== UI-OutboundReport: notjunk:1;M01:P0:7C88/EJwyYk=;EeZbn8oZQQ/XlBkmsNhLXC3DX7O R87+ukUz9LEx9YhSUTia1vUhBfnlR+q/60srJ9GvSFs3KRBjshvC2NEXiM+VR6mKcx5zKDJGv p08RzsUUX0moiNRGbI4unwoyVbI+tI93CkBjnl8PAGA7QRRK0y6SJWoDU9Z6+BXglJ/sLlvKY EaHPhCyVSyMPTxMDDdfcpd8SSksT5Q91jf2+YQBm/c1XYi/M5Lk4HFxw/bARvBqEYaqe8ZOgy Pt309QyAELbHcVzb/45JWFFsKWO5Jr8LkhAMDaULrGq+E+PBZskNxU3h4O3fxbC4xcjHHhAGu ihSPkV7N88zZL+B6EeNYQYn3s8ayZU8PV9AuCvIWH0pNJEVa9b7CkH66XbkJJDHmhF1Rb0aYP zXzk+Q6pSnSiV4mb7x0IAZcNIw6PtbLnkGQ11w0yJEW4PtthEZmL+opLCg2ddmRmZwQ8GYVch K1ED8gy3/+lWlpp31ahWDrq/7jZdlcdDYH0pX+IGtAVBVtY3xEqK91270ofa6CJGr9KylJ4zv YYTCFR+6ffFOkvpqnw9rEtN0tk65MjseXOK1Cy9CVFA+CLzm9jW1S1rVvSMvuny/W69DYM2gW qp/uM7ccNaBPcdpmdrYGo1EOFi+J8OVw+/qf1dJf14uliHL3T2hWP0MWIEvUl4WseV0Nui1/t EZ98duNQ5kZCmiLiWc5MnmLIDvIYB7RDHzV9gJHZRXww/BGdI18S0EkE3774F4BTjifZodfgy hGN73q3Tku/qeJsvWustKlGnEch6/OkzV54elWHrrYxj8ugoX9nZP+Iy5pE2A8/aMNr8myvCo 1Tofwfxw2qg5xMBP24MahPlPk/HgM7JPwsjqNTQyVfCclALIHvIdgmk2TJGxGM6EyZFS6ddXx nbe4+8TGXLF4Rax/CoyhO1MswNk+4dp9n2+FcBxMsZ9A/xBlSYdVKYfqy6ITGFrIlc2l2lCJp eyu5pQ== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" With the previous two commits, it is possible to enable ZSTD in the decompressor stub for 32-bit ARM. Unfortunately, ZSTD decompression has been quite slow in my tests (on ARM926EJ-S, ARMv5T): - LZO: 7.2 MiB, 6 seconds - ZSTD: 5.6 MiB, 60 seconds Signed-off-by: Jonathan Neusch=C3=A4fer Reviewed-by: Florian Fainelli Reviewed-by: Linus Walleij --- arch/arm/Kconfig | 1 + arch/arm/boot/compressed/Makefile | 3 ++- arch/arm/boot/compressed/decompress.c | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e24a9820e12fa..065a1746a257a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -108,6 +108,7 @@ config ARM select HAVE_KERNEL_LZMA select HAVE_KERNEL_LZO select HAVE_KERNEL_XZ + select HAVE_KERNEL_ZSTD select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M select HAVE_KRETPROBES if HAVE_KPROBES select HAVE_MOD_ARCH_SPECIFIC diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/M= akefile index dec565a5b1f21..55bfca154b12a 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -81,6 +81,7 @@ compress-$(CONFIG_KERNEL_LZO) =3D lzo_with_size compress-$(CONFIG_KERNEL_LZMA) =3D lzma_with_size compress-$(CONFIG_KERNEL_XZ) =3D xzkern_with_size compress-$(CONFIG_KERNEL_LZ4) =3D lz4_with_size +compress-$(CONFIG_KERNEL_ZSTD) =3D zstd22_with_size libfdt_objs :=3D fdt_rw.o fdt_ro.o fdt_wip.o fdt.o @@ -98,7 +99,7 @@ OBJS +=3D lib1funcs.o ashldi3.o bswapsdi2.o targets :=3D vmlinux vmlinux.lds piggy_data piggy.o \ head.o $(OBJS) -KBUILD_CFLAGS +=3D -DDISABLE_BRANCH_PROFILING +KBUILD_CFLAGS +=3D -DDISABLE_BRANCH_PROFILING -D__DISABLE_EXPORTS ccflags-y :=3D -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin \ -I$(srctree)/scripts/dtc/libfdt -fno-stack-protector \ diff --git a/arch/arm/boot/compressed/decompress.c b/arch/arm/boot/compress= ed/decompress.c index 3d098b84ee391..2c4fd33444829 100644 --- a/arch/arm/boot/compressed/decompress.c +++ b/arch/arm/boot/compressed/decompress.c @@ -59,6 +59,10 @@ extern char * strchrnul(const char *, int); #include "../../../../lib/decompress_unlz4.c" #endif +#ifdef CONFIG_KERNEL_ZSTD +#include "../../../../lib/decompress_unzstd.c" +#endif + int do_decompress(u8 *input, int len, u8 *output, int outlen, void (*error= )(char *x)) { return __decompress(input, len, NULL, NULL, output, outlen, NULL, error); -- 2.39.2