Commit 8c898ec0 authored by Jithu Joseph's avatar Jithu Joseph Committed by Hans de Goede
Browse files

platform/x86/intel/ifs: Call release_firmware() when handling errors.



Missing release_firmware() due to error handling blocked any future image
loading.

Fix the return code and release_fiwmare() to release the bad image.

Fixes: 25a76dbb ("platform/x86/intel/ifs: Validate image size")
Reported-by: default avatarPengfei Xu <pengfei.xu@intel.com>
Signed-off-by: default avatarJithu Joseph <jithu.joseph@intel.com>
Signed-off-by: default avatarAshok Raj <ashok.raj@intel.com>
Tested-by: default avatarPengfei Xu <pengfei.xu@intel.com>
Reviewed-by: default avatarTony Luck <tony.luck@intel.com>
Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20240125082254.424859-2-ashok.raj@intel.com


Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent a692a86e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -399,7 +399,8 @@ int ifs_load_firmware(struct device *dev)
	if (fw->size != expected_size) {
		dev_err(dev, "File size mismatch (expected %u, actual %zu). Corrupted IFS image.\n",
			expected_size, fw->size);
		return -EINVAL;
		ret = -EINVAL;
		goto release;
	}

	ret = image_sanity_check(dev, (struct microcode_header_intel *)fw->data);