[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230126131428.1222214-9-zaslonko@linux.ibm.com>
Date: Thu, 26 Jan 2023 14:14:28 +0100
From: Mikhail Zaslonko <zaslonko@...ux.ibm.com>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: LKML <linux-kernel@...r.kernel.org>,
Heiko Carstens <hca@...ux.ibm.com>,
Vasily Gorbik <gor@...ux.ibm.com>,
Ilya Leoshkevich <iii@...ux.ibm.com>,
Mikhail Zaslonko <zaslonko@...ux.ibm.com>
Subject: [PATCH 8/8] lib/zlib: DFLTCC always switch to software inflate for Z_PACKET_FLUSH option
Since hardware inflate does not support Z_PACKET_FLUSH option
(used exclusively by kernel PPP driver), always switch to
software like we already do for Z_BLOCK flush option.
Without this patch, PPP might get Z_DATA_ERROR return code from
zlib_inflate() and disable zlib compression for the packets.
Signed-off-by: Mikhail Zaslonko <zaslonko@...ux.ibm.com>
Acked-by: Ilya Leoshkevich <iii@...ux.ibm.com>
---
lib/zlib_dfltcc/dfltcc_inflate.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/zlib_dfltcc/dfltcc_inflate.c b/lib/zlib_dfltcc/dfltcc_inflate.c
index 5786030c6dc2..437cd34c8490 100644
--- a/lib/zlib_dfltcc/dfltcc_inflate.c
+++ b/lib/zlib_dfltcc/dfltcc_inflate.c
@@ -95,8 +95,10 @@ dfltcc_inflate_action dfltcc_inflate(
struct dfltcc_param_v0 *param = &dfltcc_state->param;
dfltcc_cc cc;
- if (flush == Z_BLOCK) {
- /* DFLTCC does not support stopping on block boundaries */
+ if (flush == Z_BLOCK || flush == Z_PACKET_FLUSH) {
+ /* DFLTCC does not support stopping on block boundaries (Z_BLOCK flush option)
+ * as well as the use of Z_PACKET_FLUSH option (used exclusively by PPP driver)
+ */
if (dfltcc_inflate_disable(strm)) {
*ret = Z_STREAM_ERROR;
return DFLTCC_INFLATE_BREAK;
--
2.34.1
Powered by blists - more mailing lists