Message ID | 1548620073263.88642@ece.ufl.edu |
---|---|
State | Superseded |
Delegated to: | David Miller |
Headers | show |
Series | : net : hso : unregister_netdev only if it has been registered | expand |
On Sun, Jan 27, 2019 at 08:14:33PM +0000, Yavuz, Tuba wrote: > > On an error path inside the hso_create_net_device function of the hso > driver, hso_free_net_device gets called. This causes potentially a > negative reference count in the net device if register_netdev has not > been called yet as hso_free_net_device calls unregister_netdev > regardless. I think the driver should distinguish these cases and call > unregister_netdev only if register_netdev has been called. > > > Reported-by: Tuba Yavuz <tuba@ece.ufl.edu> > Signed-off-by: Tuba Yavuz <tuba@ece.ufl.edu> No need for a reported-by if you wrote the patch and sign off on it. > --- > > > --- 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 Your patches need to be one more level deep. Please see the documentatino for how to do this, git should also create this automatically correctly for you. thanks, greg k-h
--- 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 */
On an error path inside the hso_create_net_device function of the hso driver, hso_free_net_device gets called. This causes potentially a negative reference count in the net device if register_netdev has not been called yet as hso_free_net_device calls unregister_netdev regardless. I think the driver should distinguish these cases and call unregister_netdev only if register_netdev has been called. Reported-by: Tuba Yavuz <tuba@ece.ufl.edu> Signed-off-by: Tuba Yavuz <tuba@ece.ufl.edu> ---