[PATCH v4 2/3] firmware: edd: Fix kobject reference leak on registration failure

Tarun Sahu tarunsahu at google.com
Fri Sep 4 10:16:08 PDT 2026


Per kobject_init_and_add() kernel-doc, calling kfree() directly on
error bypasses reference counting and skips the kobject's release
callback, leaking the reference.

Use kobject_put() instead of kfree() on registration failure to fix
this.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Reviewed-by: Sourabh Jain <sourabhjain at linux.ibm.com>
Signed-off-by: Tarun Sahu <tarunsahu at google.com>
---
 drivers/firmware/edd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c
index f980c5b56858..763e7b16d517 100644
--- a/drivers/firmware/edd.c
+++ b/drivers/firmware/edd.c
@@ -748,7 +748,7 @@ edd_init(void)
 
 		rc = edd_device_register(edev, i);
 		if (rc) {
-			kfree(edev);
+			kobject_put(&edev->kobj);
 			goto out;
 		}
 		edd_devices[i] = edev;
-- 
2.55.0.979.g7e5102b832-goog




More information about the linux-arm-kernel mailing list