From: Charles Keepax Date: Wed, 18 Mar 2026 10:38:13 +0000 (+0000) Subject: ASoC: wm_adsp: Fix crash in kunit tests on arm64 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6017671da9d0a11056bf37b4b54903e57dbc9cd1;p=thirdparty%2Flinux.git ASoC: wm_adsp: Fix crash in kunit tests on arm64 Several of the wm_adsp kunit tests failed by only on arm64. This turns out to be passing things to release_firmware which were not allocated with request_firmware. This does actually drop some errors on other platforms but somehow doesn't cause the tests to fail, and kunit hides a lot of the output for passing tests. There is a comment in the code regarding this exact thing in wm_adsp_fw_find_test_case_exit(), but then it goes on and does it anyway. I suspect maybe there was a plan to override wm_adsp_release_firmware_files() that got forgotten, as the function appears to have hooks for kunit that aren't used. Anyway for now implement a simple fix of freeing the filenames locally. It is likely a more detailed fix will be implemented in the near future but this should get things moving again. Fixes: bf2d44d07de7 ("ASoC: wm_adsp: Add kunit test for firmware file search") Signed-off-by: Charles Keepax Link: https://patch.msgid.link/20260318103813.249190-1-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown --- diff --git a/sound/soc/codecs/wm_adsp_fw_find_test.c b/sound/soc/codecs/wm_adsp_fw_find_test.c index 44c26e991b359..fb886dc61c27a 100644 --- a/sound/soc/codecs/wm_adsp_fw_find_test.c +++ b/sound/soc/codecs/wm_adsp_fw_find_test.c @@ -262,7 +262,8 @@ static void wm_adsp_fw_find_test_case_exit(struct kunit *test) * dummies not allocated by the real request_firmware() call they * must not be passed to release_firmware(). */ - wm_adsp_release_firmware_files(&priv->found_fw); + kfree(priv->found_fw.wmfw.filename); + kfree(priv->found_fw.coeff.filename); } static void wm_adsp_fw_find_test_param_desc(const struct wm_adsp_fw_find_test_params *param,