From: Fabio M. De Francesco Date: Wed, 15 Mar 2023 12:52:56 +0000 (+0100) Subject: module/decompress: Never use kunmap() for local un-mappings X-Git-Tag: v6.2.15~210 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=14f8027da4c58791add2fd6d2d4040ad17decca4;p=thirdparty%2Fkernel%2Fstable.git module/decompress: Never use kunmap() for local un-mappings [ Upstream commit 3c17655ab13704582fe25e8ea3200a9b2f8bf20a ] 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 Cc: Dmitry Torokhov Cc: Luis Chamberlain Cc: Stephen Boyd Cc: Ira Weiny Fixes: 169a58ad824d ("module/decompress: Support zstd in-kernel decompression") Signed-off-by: Fabio M. De Francesco Reviewed-by: Stephen Boyd Reviewed-by: Ira Weiny Reviewed-by: Piotr Gorski Signed-off-by: Luis Chamberlain Signed-off-by: Sasha Levin --- diff --git a/kernel/module/decompress.c b/kernel/module/decompress.c index bb79ac1a6d8f7..7ddc87bee2741 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;