Message ID | 1548692918696.27977@ece.ufl.edu |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | : net : hso : do not call unregister_netdev if not registered | expand |
From: "Yavuz, Tuba" <tuba@ece.ufl.edu> Date: Mon, 28 Jan 2019 16:28:38 +0000 > 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> This does not apply cleanly to the net tree. Also, please stop putting those spaces after the subsystem prefixes in your Subject line. Put the colon character immediately after each subsystem prefix. Thank you.
Hi David, I'll fix the spaces in the subject. When I checked my patch it only had a p0 patch warning but I am not sure how to fix it. WARNING: patch prefix 'drivers' exists, appears to be a -p0 patch total: 0 errors, 1 warnings, 0 checks, 8 lines checked drivers/net/usb/hso.patch has style problems, please review. So, please advise. 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: tuba@ece.ufl.edu Phone: (352) 846 0202
--- 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> ---