As per device_register() documentation, this kfree() on error path will crash. The call to put_device() is all that is needed here to free the memory. Signed-off-by: Umang Jain <umang.jain@xxxxxxxxxxxxxxxx> --- drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c index 4ac3491efe45..0076d091b9b2 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c @@ -73,7 +73,6 @@ vchiq_device_register(struct device *parent, const char *name) if (ret) { dev_err(parent, "Cannot register %s: %d\n", name, ret); put_device(&device->dev); - kfree(device); return NULL; } -- 2.40.1