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

- From: Tarun Sahu \<hidden\>
- Date: 2026-09-04 17:16:24 
- List: linux-arm-kernel
- Page: https://ratatoskr.run/linux-arm-kernel/2026/09/17515930
- Thread: https://ratatoskr.run/linuxppc-dev/2026/09/17515932/t.md

```text
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 <redacted>
Signed-off-by: Tarun Sahu <redacted>
---
 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


```
