Re: [PATCH 01/13] a2b: add A2B driver core

From: Alvin Šipraga
Date: Tue May 21 2024 - 03:12:00 EST


On Sun, May 19, 2024 at 10:38:25AM GMT, Markus Elfring wrote:
> [Some people who received this message don't often get email from markus.elfring@xxxxxx. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
>
> > +++ 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.

Right, I think it returns NULL on error. Thanks!

>
>
>
> > + 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?

I think this is correct, per the comment to device_register():

| * NOTE: _Never_ directly free @dev after calling this function, even
| * if it returned an error! Always use put_device() to give up the
| * reference initialized in this function instead.

or?