Skip to content

Commit 60ce26d

Browse files
ij-intelyilunxu1984
authored andcommitted
fpga: m10bmc-sec: Fix probe rollback
Handle probe error rollbacks properly to avoid leaks. Fixes: 5cd339b ("fpga: m10bmc-sec: add max10 secure update functions") Reviewed-by: Matthew Gerlach <[email protected]> Reviewed-by: Russ Weight <[email protected]> Reviewed-by: Marco Pagani <[email protected]> Signed-off-by: Ilpo Järvinen <[email protected]> Cc: [email protected] Acked-by: Xu Yilun <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Xu Yilun <[email protected]>
1 parent 65ea840 commit 60ce26d

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

drivers/fpga/intel-m10-bmc-sec-update.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -574,20 +574,27 @@ static int m10bmc_sec_probe(struct platform_device *pdev)
574574
len = scnprintf(buf, SEC_UPDATE_LEN_MAX, "secure-update%d",
575575
sec->fw_name_id);
576576
sec->fw_name = kmemdup_nul(buf, len, GFP_KERNEL);
577-
if (!sec->fw_name)
578-
return -ENOMEM;
577+
if (!sec->fw_name) {
578+
ret = -ENOMEM;
579+
goto fw_name_fail;
580+
}
579581

580582
fwl = firmware_upload_register(THIS_MODULE, sec->dev, sec->fw_name,
581583
&m10bmc_ops, sec);
582584
if (IS_ERR(fwl)) {
583585
dev_err(sec->dev, "Firmware Upload driver failed to start\n");
584-
kfree(sec->fw_name);
585-
xa_erase(&fw_upload_xa, sec->fw_name_id);
586-
return PTR_ERR(fwl);
586+
ret = PTR_ERR(fwl);
587+
goto fw_uploader_fail;
587588
}
588589

589590
sec->fwl = fwl;
590591
return 0;
592+
593+
fw_uploader_fail:
594+
kfree(sec->fw_name);
595+
fw_name_fail:
596+
xa_erase(&fw_upload_xa, sec->fw_name_id);
597+
return ret;
591598
}
592599

593600
static int m10bmc_sec_remove(struct platform_device *pdev)

0 commit comments

Comments
 (0)