Re: [PATCH 6/9] staging: octeon: use free_netdev(netdev) instead of kfree()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/28/2010 10:08 AM, Vasiliy Kulikov wrote:
It is not guaranteed that free_netdev() is macro.
Freeing netdev without free_netdev() leads to net, tx leaks.
I might lead to dereferencing freed pointer.


Signed-off-by: Vasiliy Kulikov<segooon@xxxxxxxxx>

Thanks, you can add:

Acked-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx>


---
  drivers/staging/octeon/ethernet.c |    8 ++++----
  1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
index fb568a9..a8f780e 100644
--- a/drivers/staging/octeon/ethernet.c
+++ b/drivers/staging/octeon/ethernet.c
@@ -670,7 +670,7 @@ static int __init cvm_oct_init_module(void)

  			if (register_netdev(dev)<  0) {
  				pr_err("Failed to register ethernet device for POW\n");
-				kfree(dev);
+				free_netdev(dev);
  			} else {
  				cvm_oct_device[CVMX_PIP_NUM_INPUT_PORTS] = dev;
  				pr_info("%s: POW send group %d, receive group %d\n",
@@ -756,12 +756,12 @@ static int __init cvm_oct_init_module(void)
  			}

  			if (!dev->netdev_ops) {
-				kfree(dev);
+				free_netdev(dev);
  			} else if (register_netdev(dev)<  0) {
  				pr_err("Failed to register ethernet device "
  					 "for interface %d, port %d\n",
  					 interface, priv->port);
-				kfree(dev);
+				free_netdev(dev);
  			} else {
  				cvm_oct_device[priv->port] = dev;
  				fau -=
@@ -815,7 +815,7 @@ static void __exit cvm_oct_cleanup_module(void)

  			cvm_oct_tx_shutdown_dev(dev);
  			unregister_netdev(dev);
-			kfree(dev);
+			free_netdev(dev);
  			cvm_oct_device[port] = NULL;
  		}
  	}

--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux