I agree and it would be much easier to track cleanup operations. I think this 
is happening because probe function calls hso_create_net_device, which performs 
the cleaning. The driver may need some revision to achieve cleanup inside the 
probe,

Best,

Tuba Yavuz, Ph.D.
Assistant Professor
Electrical and Computer Engineering Department
University of Florida
Gainesville, FL 32611
Webpage: http://www.tuba.ece.ufl.edu/
Email: [email protected]
Phone: (352) 846 0202

________________________________________
From: Andrew Lunn <[email protected]>
Sent: Sunday, January 27, 2019 3:19 PM
To: Yavuz, Tuba
Cc: Greg KH; [email protected]; [email protected]
Subject: Re: Error in the hso driver

On Sun, Jan 27, 2019 at 07:49:52PM +0000, Yavuz, Tuba wrote:
> Here is a proposed patch:
>
> --- drivers/net/usb/hso.c.orig        2019-01-27 14:45:58.232683119 -0500
> +++ drivers/net/usb/hso.c     2019-01-27 14:47:43.592683629 -0500
> @@ -2377,7 +2377,7 @@ static void hso_free_net_device(struct h
>
>       remove_net_device(hso_net->parent);
>
> -     if (hso_net->net)
> +     if (hso_net->net && hso_net->net->reg_state == NETREG_REGISTERED)
>               unregister_netdev(hso_net->net);
>
>       /* start freeing */

Hi Tuba

Using the free function from the probe often has problems. It is
better to put the cleanup at the end of the probe, and use a
collection of goto's and labels.

           Andrew

Reply via email to