live-patching.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] module/decompress: Never use kunmap() for local un-mappings
@ 2023-03-15 12:52 Fabio M. De Francesco
  2023-03-15 18:16 ` Ira Weiny
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Fabio M. De Francesco @ 2023-03-15 12:52 UTC (permalink / raw)
  To: Luis Chamberlain, Jason Wessel, Daniel Thompson,
	Douglas Anderson, Josh Poimboeuf, Jiri Kosina, Miroslav Benes,
	Petr Mladek, Joe Lawrence, Chris Down, Nick Terrell,
	Nathan Chancellor, Nick Desaulniers, Tom Rix, linux-modules,
	linux-kernel, kgdb-bugreport, live-patching, bpf, llvm
  Cc: Fabio M. De Francesco, Piotr Gorski, Dmitry Torokhov,
	Stephen Boyd, Ira Weiny

Use kunmap_local() to unmap pages locally mapped with kmap_local_page().

kunmap_local() must be called on the kernel virtual address returned by
kmap_local_page(), differently from how we use kunmap() which instead
expects the mapped page as its argument.

In module_zstd_decompress() we currently map with kmap_local_page() and
unmap with kunmap(). This breaks the code and so it should be fixed.

Cc: Piotr Gorski <piotrgorski@cachyos.org>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Luis Chamberlain <mcgrof@kernel.org>
Cc: Stephen Boyd <swboyd@chromium.org>
Cc: Ira Weiny <ira.weiny@intel.com>
Fixes: 169a58ad824d ("module/decompress: Support zstd in-kernel decompression")
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
---
 kernel/module/decompress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/module/decompress.c b/kernel/module/decompress.c
index bb79ac1a6d8f..7ddc87bee274 100644
--- a/kernel/module/decompress.c
+++ b/kernel/module/decompress.c
@@ -267,7 +267,7 @@ static ssize_t module_zstd_decompress(struct load_info *info,
 		zstd_dec.size = PAGE_SIZE;
 
 		ret = zstd_decompress_stream(dstream, &zstd_dec, &zstd_buf);
-		kunmap(page);
+		kunmap_local(zstd_dec.dst);
 		retval = zstd_get_error_code(ret);
 		if (retval)
 			break;
-- 
2.39.2


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

* Re: [PATCH] module/decompress: Never use kunmap() for local un-mappings
  2023-03-15 12:52 [PATCH] module/decompress: Never use kunmap() for local un-mappings Fabio M. De Francesco
@ 2023-03-15 18:16 ` Ira Weiny
  2023-03-17 19:04 ` Stephen Boyd
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ira Weiny @ 2023-03-15 18:16 UTC (permalink / raw)
  To: Fabio M. De Francesco, Luis Chamberlain, Jason Wessel,
	Daniel Thompson, Douglas Anderson, Josh Poimboeuf, Jiri Kosina,
	Miroslav Benes, Petr Mladek, Joe Lawrence, Chris Down,
	Nick Terrell, Nathan Chancellor, Nick Desaulniers, Tom Rix,
	linux-modules, linux-kernel, kgdb-bugreport, live-patching, bpf,
	llvm
  Cc: Fabio M. De Francesco, Piotr Gorski, Dmitry Torokhov,
	Stephen Boyd, Ira Weiny

Fabio M. De Francesco wrote:
> Use kunmap_local() to unmap pages locally mapped with kmap_local_page().
> 
> kunmap_local() must be called on the kernel virtual address returned by
> kmap_local_page(), differently from how we use kunmap() which instead
> expects the mapped page as its argument.
> 
> In module_zstd_decompress() we currently map with kmap_local_page() and
> unmap with kunmap(). This breaks the code and so it should be fixed.
> 
> Cc: Piotr Gorski <piotrgorski@cachyos.org>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Luis Chamberlain <mcgrof@kernel.org>
> Cc: Stephen Boyd <swboyd@chromium.org>
> Cc: Ira Weiny <ira.weiny@intel.com>

Reviewed-by: Ira Weiny <ira.weiny@intel.com>

> Fixes: 169a58ad824d ("module/decompress: Support zstd in-kernel decompression")
> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
> ---
>  kernel/module/decompress.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/module/decompress.c b/kernel/module/decompress.c
> index bb79ac1a6d8f..7ddc87bee274 100644
> --- a/kernel/module/decompress.c
> +++ b/kernel/module/decompress.c
> @@ -267,7 +267,7 @@ static ssize_t module_zstd_decompress(struct load_info *info,
>  		zstd_dec.size = PAGE_SIZE;
>  
>  		ret = zstd_decompress_stream(dstream, &zstd_dec, &zstd_buf);
> -		kunmap(page);
> +		kunmap_local(zstd_dec.dst);
>  		retval = zstd_get_error_code(ret);
>  		if (retval)
>  			break;
> -- 
> 2.39.2
> 



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

* Re: [PATCH] module/decompress: Never use kunmap() for local un-mappings
  2023-03-15 12:52 [PATCH] module/decompress: Never use kunmap() for local un-mappings Fabio M. De Francesco
  2023-03-15 18:16 ` Ira Weiny
@ 2023-03-17 19:04 ` Stephen Boyd
  2023-03-21  8:23 ` Piotr Gorski
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Stephen Boyd @ 2023-03-17 19:04 UTC (permalink / raw)
  To: Chris Down, Daniel Thompson, Douglas Anderson,
	Fabio M. De Francesco, Jason Wessel, Jiri Kosina, Joe Lawrence,
	Josh Poimboeuf, Luis Chamberlain, Miroslav Benes,
	Nathan Chancellor, Nick Desaulniers, Nick Terrell, Petr Mladek,
	Tom Rix, bpf, kgdb-bugreport, linux-kernel, linux-modules,
	live-patching, llvm
  Cc: Piotr Gorski, Dmitry Torokhov, Ira Weiny

Quoting Fabio M. De Francesco (2023-03-15 05:52:56)
> Use kunmap_local() to unmap pages locally mapped with kmap_local_page().
>
> kunmap_local() must be called on the kernel virtual address returned by
> kmap_local_page(), differently from how we use kunmap() which instead
> expects the mapped page as its argument.
>
> In module_zstd_decompress() we currently map with kmap_local_page() and
> unmap with kunmap(). This breaks the code and so it should be fixed.
>
> Cc: Piotr Gorski <piotrgorski@cachyos.org>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Luis Chamberlain <mcgrof@kernel.org>
> Cc: Stephen Boyd <swboyd@chromium.org>
> Cc: Ira Weiny <ira.weiny@intel.com>
> Fixes: 169a58ad824d ("module/decompress: Support zstd in-kernel decompression")
> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
> ---

Reviewed-by: Stephen Boyd <swboyd@chromium.org>

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

* Re: [PATCH] module/decompress: Never use kunmap() for local un-mappings
  2023-03-15 12:52 [PATCH] module/decompress: Never use kunmap() for local un-mappings Fabio M. De Francesco
  2023-03-15 18:16 ` Ira Weiny
  2023-03-17 19:04 ` Stephen Boyd
@ 2023-03-21  8:23 ` Piotr Gorski
  2023-03-21  8:33 ` Piotr Gorski
  2023-03-22 23:24 ` Luis Chamberlain
  4 siblings, 0 replies; 6+ messages in thread
From: Piotr Gorski @ 2023-03-21  8:23 UTC (permalink / raw)
  To: Fabio M. De Francesco, Luis Chamberlain, Jason Wessel,
	Daniel Thompson, Douglas Anderson, Josh Poimboeuf, Jiri Kosina,
	Miroslav Benes, Petr Mladek, Joe Lawrence, Chris Down,
	Nick Terrell, Nathan Chancellor, Nick Desaulniers, Tom Rix,
	linux-modules, linux-kernel, kgdb-bugreport, live-patching, bpf,
	llvm
  Cc: Dmitry Torokhov, Stephen Boyd, Ira Weiny

Reviewed-by: Piotr Gorski <piotrgorski@cachyos.org>

W dniu 15.03.2023 o 13:52, Fabio M. De Francesco pisze:
> Use kunmap_local() to unmap pages locally mapped with kmap_local_page().
>
> kunmap_local() must be called on the kernel virtual address returned by
> kmap_local_page(), differently from how we use kunmap() which instead
> expects the mapped page as its argument.
>
> In module_zstd_decompress() we currently map with kmap_local_page() and
> unmap with kunmap(). This breaks the code and so it should be fixed.
>
> Cc: Piotr Gorski <piotrgorski@cachyos.org>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Luis Chamberlain <mcgrof@kernel.org>
> Cc: Stephen Boyd <swboyd@chromium.org>
> Cc: Ira Weiny <ira.weiny@intel.com>
> Fixes: 169a58ad824d ("module/decompress: Support zstd in-kernel decompression")
> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
> ---
>   kernel/module/decompress.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/module/decompress.c b/kernel/module/decompress.c
> index bb79ac1a6d8f..7ddc87bee274 100644
> --- a/kernel/module/decompress.c
> +++ b/kernel/module/decompress.c
> @@ -267,7 +267,7 @@ static ssize_t module_zstd_decompress(struct load_info *info,
>   		zstd_dec.size = PAGE_SIZE;
>   
>   		ret = zstd_decompress_stream(dstream, &zstd_dec, &zstd_buf);
> -		kunmap(page);
> +		kunmap_local(zstd_dec.dst);
>   		retval = zstd_get_error_code(ret);
>   		if (retval)
>   			break;

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

* Re: [PATCH] module/decompress: Never use kunmap() for local un-mappings
  2023-03-15 12:52 [PATCH] module/decompress: Never use kunmap() for local un-mappings Fabio M. De Francesco
                   ` (2 preceding siblings ...)
  2023-03-21  8:23 ` Piotr Gorski
@ 2023-03-21  8:33 ` Piotr Gorski
  2023-03-22 23:24 ` Luis Chamberlain
  4 siblings, 0 replies; 6+ messages in thread
From: Piotr Gorski @ 2023-03-21  8:33 UTC (permalink / raw)
  To: linux-modules, linux-kernel, kgdb-bugreport, live-patching, bpf, llvm

Reviewed-by: Piotr Gorski <piotrgorski@cachyos.org>

W dniu 15.03.2023 o 13:52, Fabio M. De Francesco pisze:
> Use kunmap_local() to unmap pages locally mapped with kmap_local_page().
>
> kunmap_local() must be called on the kernel virtual address returned by
> kmap_local_page(), differently from how we use kunmap() which instead
> expects the mapped page as its argument.
>
> In module_zstd_decompress() we currently map with kmap_local_page() and
> unmap with kunmap(). This breaks the code and so it should be fixed.
>
> Cc: Piotr Gorski <piotrgorski@cachyos.org>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Luis Chamberlain <mcgrof@kernel.org>
> Cc: Stephen Boyd <swboyd@chromium.org>
> Cc: Ira Weiny <ira.weiny@intel.com>
> Fixes: 169a58ad824d ("module/decompress: Support zstd in-kernel decompression")
> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
> ---
>   kernel/module/decompress.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/module/decompress.c b/kernel/module/decompress.c
> index bb79ac1a6d8f..7ddc87bee274 100644
> --- a/kernel/module/decompress.c
> +++ b/kernel/module/decompress.c
> @@ -267,7 +267,7 @@ static ssize_t module_zstd_decompress(struct load_info *info,
>   		zstd_dec.size = PAGE_SIZE;
>   
>   		ret = zstd_decompress_stream(dstream, &zstd_dec, &zstd_buf);
> -		kunmap(page);
> +		kunmap_local(zstd_dec.dst);
>   		retval = zstd_get_error_code(ret);
>   		if (retval)
>   			break;

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

* Re: [PATCH] module/decompress: Never use kunmap() for local un-mappings
  2023-03-15 12:52 [PATCH] module/decompress: Never use kunmap() for local un-mappings Fabio M. De Francesco
                   ` (3 preceding siblings ...)
  2023-03-21  8:33 ` Piotr Gorski
@ 2023-03-22 23:24 ` Luis Chamberlain
  4 siblings, 0 replies; 6+ messages in thread
From: Luis Chamberlain @ 2023-03-22 23:24 UTC (permalink / raw)
  To: jason.wessel, joe.lawrence, daniel.thompson, jikos,
	linux-modules, llvm, nathan, trix, chris, linux-kernel, mbenes,
	terrelln, kgdb-bugreport, live-patching, fmdefrancesco, dianders,
	pmladek, jpoimboe, ndesaulniers, bpf
  Cc: Luis Chamberlain, ira.weiny, dmitry.torokhov, swboyd, piotrgorski

From: Luis Chamberlain <mcgrof@kernel.org>

On Wed, 15 Mar 2023 13:52:56 +0100, Fabio M. De Francesco wrote:
> Use kunmap_local() to unmap pages locally mapped with kmap_local_page().
> 
> kunmap_local() must be called on the kernel virtual address returned by
> kmap_local_page(), differently from how we use kunmap() which instead
> expects the mapped page as its argument.
> 
> In module_zstd_decompress() we currently map with kmap_local_page() and
> unmap with kunmap(). This breaks the code and so it should be fixed.
> 
> [...]

Applied, thanks!

[1/1] module/decompress: Never use kunmap() for local un-mappings
      commit: 3c17655ab13704582fe25e8ea3200a9b2f8bf20a

  Luis

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

end of thread, other threads:[~2023-03-22 23:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-15 12:52 [PATCH] module/decompress: Never use kunmap() for local un-mappings Fabio M. De Francesco
2023-03-15 18:16 ` Ira Weiny
2023-03-17 19:04 ` Stephen Boyd
2023-03-21  8:23 ` Piotr Gorski
2023-03-21  8:33 ` Piotr Gorski
2023-03-22 23:24 ` Luis Chamberlain

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).