From: Lucas De Marchi lucas.demarchi@intel.com
commit fadb74f9f2f609238070c7ca1b04933dc9400e4a upstream.
While implementing support for in-kernel decompression in kmod, finit_module() was returning a very suspicious value:
finit_module(3, "", MODULE_INIT_COMPRESSED_FILE) = 18446744072717407296
It turns out the check for module_get_next_page() failing is wrong, and hence the decompression was not really taking place. Invert the condition to fix it.
Fixes: 169a58ad824d ("module/decompress: Support zstd in-kernel decompression") Cc: stable@kernel.org Cc: Luis Chamberlain mcgrof@kernel.org Cc: Dmitry Torokhov dmitry.torokhov@gmail.com Cc: Stephen Boyd swboyd@chromium.org Signed-off-by: Lucas De Marchi lucas.demarchi@intel.com Signed-off-by: Luis Chamberlain mcgrof@kernel.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- 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 e97232b125eb..8a5d6d63b06c 100644 --- a/kernel/module/decompress.c +++ b/kernel/module/decompress.c @@ -257,7 +257,7 @@ static ssize_t module_zstd_decompress(struct load_info *info, do { struct page *page = module_get_next_page(info);
- if (!IS_ERR(page)) { + if (IS_ERR(page)) { retval = PTR_ERR(page); goto out; }