… > +++ b/drivers/a2b/a2b.c > @@ -0,0 +1,1252 @@ … > +static int a2b_bus_of_add_node(struct a2b_bus *bus, struct device_node *np, > + unsigned int addr) > +{ … > + node = kzalloc(sizeof(*node), GFP_KERNEL); > + if (IS_ERR(node)) > + return -ENOMEM; Please improve the distinction for checks according to the handling of error/null pointers. … > + ret = device_register(&node->dev); > + if (ret) > + goto err_put_device; > + > + return 0; > + > +err_put_device: > + put_device(&node->dev); > + > + return ret; > +} Did you overlook to release the node memory after a failed function call at such a source code place? Regards, Markus