e1000e: Use kmemdup rather than duplicating its implementation
authorBruce Allan <bruce.w.allan@intel.com>
Wed, 5 Jan 2011 07:10:38 +0000 (07:10 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 24 Jan 2011 08:14:03 +0000 (00:14 -0800)
The semantic patch that makes this output is available
in scripts/coccinelle/api/memdup.cocci.

More information about semantic patching is available at
http://coccinelle.lip6.fr/

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/e1000e/ethtool.c

index 323fd12c306bbcb2a2679fac1d6b956b873dd377..daa7fe4b9fdd08bd4ca2b8fd34ca18218a2b58a0 100644 (file)
@@ -684,20 +684,13 @@ static int e1000_set_ringparam(struct net_device *netdev,
        rx_old = adapter->rx_ring;
 
        err = -ENOMEM;
-       tx_ring = kzalloc(sizeof(struct e1000_ring), GFP_KERNEL);
+       tx_ring = kmemdup(tx_old, sizeof(struct e1000_ring), GFP_KERNEL);
        if (!tx_ring)
                goto err_alloc_tx;
-       /*
-        * use a memcpy to save any previously configured
-        * items like napi structs from having to be
-        * reinitialized
-        */
-       memcpy(tx_ring, tx_old, sizeof(struct e1000_ring));
 
-       rx_ring = kzalloc(sizeof(struct e1000_ring), GFP_KERNEL);
+       rx_ring = kmemdup(rx_old, sizeof(struct e1000_ring), GFP_KERNEL);
        if (!rx_ring)
                goto err_alloc_rx;
-       memcpy(rx_ring, rx_old, sizeof(struct e1000_ring));
 
        adapter->tx_ring = tx_ring;
        adapter->rx_ring = rx_ring;