linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] decompressor: provide missing prototypes
@ 2023-05-17 13:19 Arnd Bergmann
  2023-05-17 20:49 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Arnd Bergmann @ 2023-05-17 13:19 UTC (permalink / raw)
  To: Andrew Morton, Nick Terrell; +Cc: linux-mm, Arnd Bergmann, linux-kernel

From: Arnd Bergmann <arnd@arndb.de>

The entry points for the decompressor don't always have a prototype
included in the .c file:

lib/decompress_inflate.c:42:17: error: no previous prototype for '__gunzip' [-Werror=missing-prototypes]
lib/decompress_unxz.c:251:17: error: no previous prototype for 'unxz' [-Werror=missing-prototypes]
lib/decompress_unzstd.c:331:17: error: no previous prototype for 'unzstd' [-Werror=missing-prototypes]

include the correct headers for unxz and unzstd, and mark the
inflate function above as unconditionally 'static' to avoid
these warnings.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 lib/decompress_inflate.c | 2 +-
 lib/decompress_unxz.c    | 2 ++
 lib/decompress_unzstd.c  | 2 ++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/decompress_inflate.c b/lib/decompress_inflate.c
index 6130c42b8e59..e19199f4a684 100644
--- a/lib/decompress_inflate.c
+++ b/lib/decompress_inflate.c
@@ -39,7 +39,7 @@ static long INIT nofill(void *buffer, unsigned long len)
 }
 
 /* Included from initramfs et al code */
-STATIC int INIT __gunzip(unsigned char *buf, long len,
+static int INIT __gunzip(unsigned char *buf, long len,
 		       long (*fill)(void*, unsigned long),
 		       long (*flush)(void*, unsigned long),
 		       unsigned char *out_buf, long out_len,
diff --git a/lib/decompress_unxz.c b/lib/decompress_unxz.c
index 9f4262ee33a5..353268b9f129 100644
--- a/lib/decompress_unxz.c
+++ b/lib/decompress_unxz.c
@@ -102,6 +102,8 @@
  */
 #ifdef STATIC
 #	define XZ_PREBOOT
+#else
+#include <linux/decompress/unxz.h>
 #endif
 #ifdef __KERNEL__
 #	include <linux/decompress/mm.h>
diff --git a/lib/decompress_unzstd.c b/lib/decompress_unzstd.c
index a512b99ae16a..bba2c0bb10cb 100644
--- a/lib/decompress_unzstd.c
+++ b/lib/decompress_unzstd.c
@@ -69,6 +69,8 @@
 # define UNZSTD_PREBOOT
 # include "xxhash.c"
 # include "zstd/decompress_sources.h"
+#else
+#include <linux/decompress/unzstd.h>
 #endif
 
 #include <linux/decompress/mm.h>
-- 
2.39.2



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] decompressor: provide missing prototypes
  2023-05-17 13:19 [PATCH] decompressor: provide missing prototypes Arnd Bergmann
@ 2023-05-17 20:49 ` Andrew Morton
  2023-05-18 13:23   ` Arnd Bergmann
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2023-05-17 20:49 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Nick Terrell, linux-mm, Arnd Bergmann, linux-kernel

On Wed, 17 May 2023 15:19:31 +0200 Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
> 
> The entry points for the decompressor don't always have a prototype
> included in the .c file:
> 
> lib/decompress_inflate.c:42:17: error: no previous prototype for '__gunzip' [-Werror=missing-prototypes]
> lib/decompress_unxz.c:251:17: error: no previous prototype for 'unxz' [-Werror=missing-prototypes]
> lib/decompress_unzstd.c:331:17: error: no previous prototype for 'unzstd' [-Werror=missing-prototypes]
> 
> include the correct headers for unxz and unzstd, and mark the
> inflate function above as unconditionally 'static' to avoid
> these warnings.

These are errors, not warnings?

Under what circumstances do they occur?

Shouldn't we cc:stable?  If so, do we have a suitable Fixes: target?




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] decompressor: provide missing prototypes
  2023-05-17 20:49 ` Andrew Morton
@ 2023-05-18 13:23   ` Arnd Bergmann
  0 siblings, 0 replies; 3+ messages in thread
From: Arnd Bergmann @ 2023-05-18 13:23 UTC (permalink / raw)
  To: Andrew Morton, Arnd Bergmann; +Cc: Nick Terrell, linux-mm, linux-kernel

On Wed, May 17, 2023, at 22:49, Andrew Morton wrote:
> On Wed, 17 May 2023 15:19:31 +0200 Arnd Bergmann <arnd@kernel.org> wrote:
>
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> The entry points for the decompressor don't always have a prototype
>> included in the .c file:
>> 
>> lib/decompress_inflate.c:42:17: error: no previous prototype for '__gunzip' [-Werror=missing-prototypes]
>> lib/decompress_unxz.c:251:17: error: no previous prototype for 'unxz' [-Werror=missing-prototypes]
>> lib/decompress_unzstd.c:331:17: error: no previous prototype for 'unzstd' [-Werror=missing-prototypes]
>> 
>> include the correct headers for unxz and unzstd, and mark the
>> inflate function above as unconditionally 'static' to avoid
>> these warnings.
>
> These are errors, not warnings?
>
> Under what circumstances do they occur?

Running "make W=1" turns these errors on as warnings, enabling
CONFIG_WERROR turns all warnings into errors.

> Shouldn't we cc:stable?  If so, do we have a suitable Fixes: target?

I have sent 140 patches for these, there is probably no point in backporting
them all. My hope is that we can enable -Wmissing-prototypes by default
after these are all merged, but that patch would not get backported
either.

I meant to include a link with the explanations to

https://people.kernel.org/arnd/missing-prototype-warnings-in-the-kernel

in my series but didn't have that in the separate patches.

     Arnd


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-05-18 13:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-17 13:19 [PATCH] decompressor: provide missing prototypes Arnd Bergmann
2023-05-17 20:49 ` Andrew Morton
2023-05-18 13:23   ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox