--- si.c.orig 2026-09-15 05:59:44.826647602 +0000 +++ si.c.fix3591 2026-09-15 06:01:13.033528180 +0000 @@ -1803,6 +1803,7 @@ pr_err("si_cp: Bogus length %zu in firmware \"%s\"\n", rdev->me_fw->datasize, fw_name); err = -EINVAL; + goto out; } } else { err = radeon_ucode_validate(rdev->me_fw); @@ -1826,6 +1827,7 @@ pr_err("si_cp: Bogus length %zu in firmware \"%s\"\n", rdev->ce_fw->datasize, fw_name); err = -EINVAL; + goto out; } } else { err = radeon_ucode_validate(rdev->ce_fw); @@ -1849,6 +1851,7 @@ pr_err("si_rlc: Bogus length %zu in firmware \"%s\"\n", rdev->rlc_fw->datasize, fw_name); err = -EINVAL; + goto out; } } else { err = radeon_ucode_validate(rdev->rlc_fw); @@ -1880,6 +1883,7 @@ pr_err("si_mc: Bogus length %zu in firmware \"%s\"\n", rdev->mc_fw->datasize, fw_name); err = -EINVAL; + goto out; } DRM_INFO("%s: %zu bytes\n", fw_name, rdev->mc_fw->datasize); } else { @@ -1912,6 +1916,7 @@ pr_err("si_smc: Bogus length %zu in firmware \"%s\"\n", rdev->smc_fw->datasize, fw_name); err = -EINVAL; + goto out; } } else { err = radeon_ucode_validate(rdev->smc_fw);