Commit 63627cae authored by Gavin Shan's avatar Gavin Shan Committed by Will Deacon
Browse files

firmware: arm_sdei: Unregister driver on error in sdei_init()



The SDEI platform device is created from device-tree node or ACPI
(SDEI) table. For the later case, the platform device is created
explicitly by this module. It'd better to unregister the driver on
failure to create the device to keep the symmetry. The driver, owned
by this module, isn't needed if the device isn't existing.

Besides, the errno (@ret) should be updated accordingly in this
case.

Signed-off-by: default avatarGavin Shan <gshan@redhat.com>
Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarJames Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20200922130423.10173-6-gshan@redhat.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 10fd7c42
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -1090,9 +1090,12 @@ static int __init sdei_init(void)

	pdev = platform_device_register_simple(sdei_driver.driver.name,
					       0, NULL, 0);
	if (IS_ERR(pdev))
		pr_info("Failed to register ACPI:SDEI platform device %ld\n",
			PTR_ERR(pdev));
	if (IS_ERR(pdev)) {
		ret = PTR_ERR(pdev);
		platform_driver_unregister(&sdei_driver);
		pr_info("Failed to register ACPI:SDEI platform device %d\n",
			ret);
	}

	return ret;
}