netprio_cgroup: Use memcpy instead of the for-loop to copy priomap
authorSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Wed, 12 Sep 2012 20:32:34 +0000 (20:32 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Sep 2012 20:18:40 +0000 (16:18 -0400)
Replace the current (inefficient) for-loop with memcpy, to copy priomap.

Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/netprio_cgroup.c

index fd339bb00106ba072c11592c2b34e1ecf9cb3872..45c503e45fc65f5a0a1047774fa3f7716cb37a0c 100644 (file)
@@ -73,7 +73,6 @@ static int extend_netdev_table(struct net_device *dev, u32 new_len)
                           ((sizeof(u32) * new_len));
        struct netprio_map *new_priomap = kzalloc(new_size, GFP_KERNEL);
        struct netprio_map *old_priomap;
-       int i;
 
        old_priomap  = rtnl_dereference(dev->priomap);
 
@@ -82,10 +81,10 @@ static int extend_netdev_table(struct net_device *dev, u32 new_len)
                return -ENOMEM;
        }
 
-       for (i = 0;
-            old_priomap && (i < old_priomap->priomap_len);
-            i++)
-               new_priomap->priomap[i] = old_priomap->priomap[i];
+       if (old_priomap)
+               memcpy(new_priomap->priomap, old_priomap->priomap,
+                      old_priomap->priomap_len *
+                      sizeof(old_priomap->priomap[0]));
 
        new_priomap->priomap_len = new_len;