lib/zlib: fix DFLTCC ignoring flush modes when avail_in == 0
authorMikhail Zaslonko <zaslonko@linux.ibm.com>
Thu, 26 Jan 2023 13:14:24 +0000 (14:14 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 3 Feb 2023 06:50:08 +0000 (22:50 -0800)
This commit is based on:
  https://github.com/zlib-ng/zlib-ng/commit/40acb3f

Link: https://lkml.kernel.org/r/20230126131428.1222214-5-zaslonko@linux.ibm.com
Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com>
Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/zlib_dfltcc/dfltcc_deflate.c

index dc85ec8901636d3320548ea03a40dbf0fd612bf9..211d344710d5daa4d73f60d94912c98057bd043e 100644 (file)
@@ -142,7 +142,8 @@ again:
         /* Clear history. */
         if (flush == Z_FULL_FLUSH)
             param->hl = 0;
-        *result = need_more;
+        /* Trigger block post-processing if necessary. */
+        *result = no_flush ? need_more : block_done;
         return 1;
     }