[PATCH 2/7] fs/squashfs: sqfs_decompressor: simplify code

Richard Genoud richard.genoud at bootlin.com
Fri Mar 13 11:42:24 CET 2026


Switch to if (CONFIG_IS_ENABLED()) instead of #if when possible and
remove unnecessary cases.

Signed-off-by: Richard Genoud <richard.genoud at bootlin.com>
---
 fs/squashfs/sqfs_decompressor.c | 49 ++++++++-------------------------
 1 file changed, 12 insertions(+), 37 deletions(-)

diff --git a/fs/squashfs/sqfs_decompressor.c b/fs/squashfs/sqfs_decompressor.c
index d54f087274c3..a156cfe6f65a 100644
--- a/fs/squashfs/sqfs_decompressor.c
+++ b/fs/squashfs/sqfs_decompressor.c
@@ -33,57 +33,32 @@ int sqfs_decompressor_init(struct squashfs_ctxt *ctxt)
 {
 	u16 comp_type = get_unaligned_le16(&ctxt->sblk->compression);
 
-	switch (comp_type) {
-#if CONFIG_IS_ENABLED(LZO)
-	case SQFS_COMP_LZO:
-		break;
-#endif
-#if CONFIG_IS_ENABLED(ZLIB)
-	case SQFS_COMP_ZLIB:
-		break;
-#endif
-#if CONFIG_IS_ENABLED(LZ4)
-	case SQFS_COMP_LZ4:
-		break;
-#endif
+	if (((CONFIG_IS_ENABLED(LZO) && comp_type == SQFS_COMP_LZO)) ||
+	    ((CONFIG_IS_ENABLED(ZLIB) && comp_type == SQFS_COMP_ZLIB)) ||
+	    ((CONFIG_IS_ENABLED(LZ4) && comp_type == SQFS_COMP_LZ4)))
+		return 0;
+
 #if CONFIG_IS_ENABLED(ZSTD)
-	case SQFS_COMP_ZSTD:
+	if (comp_type == SQFS_COMP_ZSTD) {
 		ctxt->zstd_workspace = malloc(zstd_dctx_workspace_bound());
 		if (!ctxt->zstd_workspace)
 			return -ENOMEM;
-		break;
-#endif
-	default:
-		printf("Error: unknown compression type.\n");
-		return -EINVAL;
+		return 0;
 	}
+#endif
 
-	return 0;
+	printf("Error: unknown compression type.\n");
+	return -EINVAL;
 }
 
 void sqfs_decompressor_cleanup(struct squashfs_ctxt *ctxt)
 {
+#if CONFIG_IS_ENABLED(ZSTD)
 	u16 comp_type = get_unaligned_le16(&ctxt->sblk->compression);
 
-	switch (comp_type) {
-#if CONFIG_IS_ENABLED(LZO)
-	case SQFS_COMP_LZO:
-		break;
-#endif
-#if CONFIG_IS_ENABLED(ZLIB)
-	case SQFS_COMP_ZLIB:
-		break;
-#endif
-#if CONFIG_IS_ENABLED(LZ4)
-	case SQFS_COMP_LZ4:
-		break;
-#endif
-#if CONFIG_IS_ENABLED(ZSTD)
-	case SQFS_COMP_ZSTD:
+	if (comp_type == SQFS_COMP_ZSTD)
 		free(ctxt->zstd_workspace);
-		break;
 #endif
-	}
 }
 
 #if CONFIG_IS_ENABLED(ZLIB)


More information about the U-Boot mailing list