drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
The variable fi and bi only used in branch if (!dev->prev_siblings)
, fi & bi not kmalloc in else branch, so move kfree into branch
if (!dev->prev_siblings),this change is to cleanup the code a bit.
Signed-off-by: Bernard Zhao <zhaojunkui2008@126.com>
---
drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
index ebe087f258e3..70c5aef57247 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
@@ -903,6 +903,9 @@ static int pcan_usb_pro_init(struct peak_usb_device *dev)
pcan_usb_pro.name,
bi->hw_rev, bi->serial_num_hi, bi->serial_num_lo,
pcan_usb_pro.ctrl_count);
+
+ kfree(bi);
+ kfree(fi);
} else {
usb_if = pcan_usb_pro_dev_if(dev->prev_siblings);
}
@@ -913,9 +916,6 @@ static int pcan_usb_pro_init(struct peak_usb_device *dev)
/* set LED in default state (end of init phase) */
pcan_usb_pro_set_led(dev, PCAN_USBPRO_LED_DEVICE, 1);
- kfree(bi);
- kfree(fi);
-
return 0;
err_out:
--
2.33.1
On 10.05.2022 23:38:38, Bernard Zhao wrote: > The variable fi and bi only used in branch if (!dev->prev_siblings) > , fi & bi not kmalloc in else branch, so move kfree into branch > if (!dev->prev_siblings),this change is to cleanup the code a bit. Please move the variable declaration into that scope, too. Adjust the error handling accordingly. regards, Marc -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung West/Dortmund | Phone: +49-231-2826-924 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
At 2022-05-11 14:44:50, "Marc Kleine-Budde" <mkl@pengutronix.de> wrote:
>On 10.05.2022 23:38:38, Bernard Zhao wrote:
>> The variable fi and bi only used in branch if (!dev->prev_siblings)
>> , fi & bi not kmalloc in else branch, so move kfree into branch
>> if (!dev->prev_siblings),this change is to cleanup the code a bit.
>
>Please move the variable declaration into that scope, too. Adjust the
>error handling accordingly.
Hi Marc:
I am not sure if there is some gap.
If we move the variable declaration into that scope, then each error branch has to do the kfree job, like:
if (err) {
dev_err(dev->netdev->dev.parent,
"unable to read %s firmware info (err %d)\n",
pcan_usb_pro.name, err);
kfree(bi);
kfree(fi);
kfree(usb_if);
return err;
}
I am not sure if this looks a little less clear?
Thanks!
BR//Bernard
>
>regards,
>Marc
>
>--
>Pengutronix e.K. | Marc Kleine-Budde |
>Embedded Linux | https://www.pengutronix.de |
>Vertretung West/Dortmund | Phone: +49-231-2826-924 |
>Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
On Wed. 11 May 2022 at 16:11, z <zhaojunkui2008@126.com> wrote:
> At 2022-05-11 14:44:50, "Marc Kleine-Budde" <mkl@pengutronix.de> wrote:
> >On 10.05.2022 23:38:38, Bernard Zhao wrote:
> >> The variable fi and bi only used in branch if (!dev->prev_siblings)
> >> , fi & bi not kmalloc in else branch, so move kfree into branch
> >> if (!dev->prev_siblings),this change is to cleanup the code a bit.
> >
> >Please move the variable declaration into that scope, too. Adjust the
> >error handling accordingly.
>
> Hi Marc:
>
> I am not sure if there is some gap.
> If we move the variable declaration into that scope, then each error branch has to do the kfree job, like:
> if (err) {
> dev_err(dev->netdev->dev.parent,
> "unable to read %s firmware info (err %d)\n",
> pcan_usb_pro.name, err);
> kfree(bi);
> kfree(fi);
> kfree(usb_if);
>
> return err;
> }
> I am not sure if this looks a little less clear?
> Thanks!
A cleaner way would be to move all the content of the if
(!dev->prev_siblings) to a new function.
Yours sincerely,
Vincent Mailhol
On 11.05.2022 17:28:26, Vincent MAILHOL wrote:
> On Wed. 11 May 2022 at 16:11, z <zhaojunkui2008@126.com> wrote:
> > At 2022-05-11 14:44:50, "Marc Kleine-Budde" <mkl@pengutronix.de> wrote:
> > >On 10.05.2022 23:38:38, Bernard Zhao wrote:
> > >> The variable fi and bi only used in branch if (!dev->prev_siblings)
> > >> , fi & bi not kmalloc in else branch, so move kfree into branch
> > >> if (!dev->prev_siblings),this change is to cleanup the code a bit.
> > >
> > >Please move the variable declaration into that scope, too. Adjust the
> > >error handling accordingly.
> >
> > Hi Marc:
> >
> > I am not sure if there is some gap.
> > If we move the variable declaration into that scope, then each error branch has to do the kfree job, like:
> > if (err) {
> > dev_err(dev->netdev->dev.parent,
> > "unable to read %s firmware info (err %d)\n",
> > pcan_usb_pro.name, err);
> > kfree(bi);
> > kfree(fi);
> > kfree(usb_if);
> >
> > return err;
> > }
> > I am not sure if this looks a little less clear?
> > Thanks!
>
> A cleaner way would be to move all the content of the if
> (!dev->prev_siblings) to a new function.
Good idea.
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
At 2022-05-11 16:28:26, "Vincent MAILHOL" <mailhol.vincent@wanadoo.fr> wrote:
>On Wed. 11 May 2022 at 16:11, z <zhaojunkui2008@126.com> wrote:
>> At 2022-05-11 14:44:50, "Marc Kleine-Budde" <mkl@pengutronix.de> wrote:
>> >On 10.05.2022 23:38:38, Bernard Zhao wrote:
>> >> The variable fi and bi only used in branch if (!dev->prev_siblings)
>> >> , fi & bi not kmalloc in else branch, so move kfree into branch
>> >> if (!dev->prev_siblings),this change is to cleanup the code a bit.
>> >
>> >Please move the variable declaration into that scope, too. Adjust the
>> >error handling accordingly.
>>
>> Hi Marc:
>>
>> I am not sure if there is some gap.
>> If we move the variable declaration into that scope, then each error branch has to do the kfree job, like:
>> if (err) {
>> dev_err(dev->netdev->dev.parent,
>> "unable to read %s firmware info (err %d)\n",
>> pcan_usb_pro.name, err);
>> kfree(bi);
>> kfree(fi);
>> kfree(usb_if);
>>
>> return err;
>> }
>> I am not sure if this looks a little less clear?
>> Thanks!
>
>A cleaner way would be to move all the content of the if
>(!dev->prev_siblings) to a new function.
Hi Vincent Mailhol:
Got it.
This seems to be a good idea, i would resubmit one patch V2.
Thanks!
BR//Bernard
>
>Yours sincerely,
>Vincent Mailhol
© 2016 - 2026 Red Hat, Inc.