On 09/26/2010 02:58 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.


There is no Signed-off-by header here.

Please resend the patch with the proper headers.

Other than that, it looks good to me.  You can add:

Acked-by: David Daney <[email protected]>

Thanks.



---
  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;
                }
        }

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to