can: etas_es58x: use devm_kzalloc() to allocate device resources
authorVincent Mailhol <mailhol.vincent@wanadoo.fr>
Mon, 28 Jun 2021 15:54:17 +0000 (00:54 +0900)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Sun, 25 Jul 2021 09:36:28 +0000 (11:36 +0200)
Replace kzalloc() with devm_kzalloc(). By doing this, we do not need
to care anymore about having to call kfree(). This result in a
simpler and more easy to read code.

Link: https://lore.kernel.org/r/20210628155420.1176217-4-mailhol.vincent@wanadoo.fr
Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/usb/etas_es58x/es58x_core.c

index 7650e34..d2bb1b5 100644 (file)
@@ -2185,7 +2185,8 @@ static struct es58x_device *es58x_init_es58x_dev(struct usb_interface *intf,
                ops = &es581_4_ops;
        }
 
-       es58x_dev = kzalloc(es58x_sizeof_es58x_device(param), GFP_KERNEL);
+       es58x_dev = devm_kzalloc(dev, es58x_sizeof_es58x_device(param),
+                                GFP_KERNEL);
        if (!es58x_dev)
                return ERR_PTR(-ENOMEM);
 
@@ -2235,7 +2236,7 @@ static int es58x_probe(struct usb_interface *intf,
 
        ret = es58x_get_product_info(es58x_dev);
        if (ret)
-               goto cleanup_es58x_dev;
+               return ret;
 
        for (ch_idx = 0; ch_idx < es58x_dev->num_can_ch; ch_idx++) {
                ret = es58x_init_netdev(es58x_dev, ch_idx);
@@ -2251,8 +2252,6 @@ static int es58x_probe(struct usb_interface *intf,
                        unregister_candev(es58x_dev->netdev[ch_idx]);
                        free_candev(es58x_dev->netdev[ch_idx]);
                }
- cleanup_es58x_dev:
-       kfree(es58x_dev);
 
        return ret;
 }
@@ -2283,8 +2282,6 @@ static void es58x_disconnect(struct usb_interface *intf)
        }
 
        es58x_free_urbs(es58x_dev);
-
-       kfree(es58x_dev);
        usb_set_intfdata(intf, NULL);
 }