From: Richard Fitzgerald Date: Tue, 17 Dec 2024 11:31:27 +0000 (+0000) Subject: firmware: cs_dsp: Avoid using a u32 as a __be32 in cs_dsp_mock_mem_maps.c X-Git-Tag: v6.14-rc1~111^2~7^2~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a5bd108d4a57d6c00372041c83e633a26fb450de;p=thirdparty%2Fkernel%2Flinux.git firmware: cs_dsp: Avoid using a u32 as a __be32 in cs_dsp_mock_mem_maps.c In cs_dsp_mock_xm_header_drop_from_regmap_cache() for the ADSP2 case read the big-endian firmware word into a dedicated __be32 variable instead of using the same u32 for both the big-endian and cpu-endian value. Fixes: 41e78c0f44f9 ("firmware: cs_dsp: Add mock DSP memory map for KUnit testing") Signed-off-by: Richard Fitzgerald Link: https://patch.msgid.link/20241217113127.186736-1-rf@opensource.cirrus.com Signed-off-by: Mark Brown --- diff --git a/drivers/firmware/cirrus/test/cs_dsp_mock_mem_maps.c b/drivers/firmware/cirrus/test/cs_dsp_mock_mem_maps.c index ae5d57bdcc2ff..161272e47bdab 100644 --- a/drivers/firmware/cirrus/test/cs_dsp_mock_mem_maps.c +++ b/drivers/firmware/cirrus/test/cs_dsp_mock_mem_maps.c @@ -526,7 +526,8 @@ void cs_dsp_mock_xm_header_drop_from_regmap_cache(struct cs_dsp_test *priv) { unsigned int xm = cs_dsp_mock_base_addr_for_mem(priv, WMFW_ADSP2_XM); unsigned int bytes; - u32 num_algs; + __be32 num_algs_be32; + unsigned int num_algs; switch (priv->dsp->type) { case WMFW_ADSP2: @@ -536,8 +537,8 @@ void cs_dsp_mock_xm_header_drop_from_regmap_cache(struct cs_dsp_test *priv) */ regmap_raw_read(priv->dsp->regmap, xm + (offsetof(struct wmfw_adsp2_id_hdr, n_algs) / 2), - &num_algs, sizeof(num_algs)); - num_algs = be32_to_cpu(num_algs); + &num_algs_be32, sizeof(num_algs_be32)); + num_algs = be32_to_cpu(num_algs_be32); bytes = sizeof(struct wmfw_adsp2_id_hdr) + (num_algs * sizeof(struct wmfw_adsp2_alg_hdr)) + 4 /* terminator word */;