[JAMMY][SRU][PATCH 3/4] UBUNTU: SAUCE: Backport ZSTD-compressed firmware files to old ZSTD API
Dimitri John Ledkov
dimitri.ledkov at canonical.com
Tue Jul 25 21:15:06 UTC 2023
This fixes "firmware: Add the support for ZSTD-compressed firmware
files" cherry-pick to use the old ZSTD APIs as present in the v5.15
kernel, instead of v5.19+ in-kernel API..
The zstd in-kernel API was introduced in v5.19 kernels by commit
cf30f6a5f0 ("lib: zstd: Add kernel-specific API").
BugLink: https://bugs.launchpad.net/bugs/2028550
Signed-off-by: Dimitri John Ledkov <dimitri.ledkov at canonical.com>
---
drivers/base/firmware_loader/main.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_loader/main.c
index 227f6b3dff..701b7ee469 100644
--- a/drivers/base/firmware_loader/main.c
+++ b/drivers/base/firmware_loader/main.c
@@ -374,16 +374,16 @@ static int fw_decompress_zstd(struct device *dev, struct fw_priv *fw_priv,
{
size_t len, out_size, workspace_size;
void *workspace, *out_buf;
- zstd_dctx *ctx;
+ ZSTD_DCtx *ctx;
int err;
if (fw_priv->allocated_size) {
out_size = fw_priv->allocated_size;
out_buf = fw_priv->data;
} else {
- zstd_frame_header params;
+ ZSTD_frameParams params;
- if (zstd_get_frame_header(¶ms, in_buffer, in_size) ||
+ if (ZSTD_getFrameParams(¶ms, in_buffer, in_size) ||
params.frameContentSize == ZSTD_CONTENTSIZE_UNKNOWN) {
dev_dbg(dev, "%s: invalid zstd header\n", __func__);
return -EINVAL;
@@ -394,24 +394,24 @@ static int fw_decompress_zstd(struct device *dev, struct fw_priv *fw_priv,
return -ENOMEM;
}
- workspace_size = zstd_dctx_workspace_bound();
+ workspace_size = ZSTD_DCtxWorkspaceBound();
workspace = kvzalloc(workspace_size, GFP_KERNEL);
if (!workspace) {
err = -ENOMEM;
goto error;
}
- ctx = zstd_init_dctx(workspace, workspace_size);
+ ctx = ZSTD_initDCtx(workspace, workspace_size);
if (!ctx) {
dev_dbg(dev, "%s: failed to initialize context\n", __func__);
err = -EINVAL;
goto error;
}
- len = zstd_decompress_dctx(ctx, out_buf, out_size, in_buffer, in_size);
- if (zstd_is_error(len)) {
+ len = ZSTD_decompressDCtx(ctx, out_buf, out_size, in_buffer, in_size);
+ if (ZSTD_isError(len)) {
dev_dbg(dev, "%s: failed to decompress: %d\n", __func__,
- zstd_get_error_code(len));
+ ZSTD_getErrorCode(len));
err = -EINVAL;
goto error;
}
--
2.34.1
More information about the kernel-team
mailing list