diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index fc67a325beaab774bf21992a6e0ae7ae1acca306..4e45ac21d672140348d474ec7a5a29a8851a2109 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -521,7 +521,7 @@ struct platform_device *platform_device_register_full(
 
 	pdev = platform_device_alloc(pdevinfo->name, pdevinfo->id);
 	if (!pdev)
-		goto err_alloc;
+		return ERR_PTR(-ENOMEM);
 
 	pdev->dev.parent = pdevinfo->parent;
 	pdev->dev.fwnode = pdevinfo->fwnode;
@@ -568,8 +568,6 @@ struct platform_device *platform_device_register_full(
 err:
 		ACPI_COMPANION_SET(&pdev->dev, NULL);
 		kfree(pdev->dev.dma_mask);
-
-err_alloc:
 		platform_device_put(pdev);
 		return ERR_PTR(ret);
 	}