netprio_cgroup: don't allocate prio table when a device is registered
authorNeil Horman <nhorman@tuxdriver.com>
Fri, 10 Feb 2012 05:43:37 +0000 (05:43 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 10 Feb 2012 20:08:57 +0000 (15:08 -0500)
So we delay the allocation till the priority is set through cgroup,
and this makes skb_update_priority() faster when it's not set.

This also eliminates an off-by-one bug similar with the one fixed
in the previous patch.

Origionally-authored-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
CC: "David S. Miller" <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/netprio_cgroup.c

index 72c638780805c71bfda4b126cbbd6851e343d798..4dacc44637ef8b908d339ab4898cbcf86eb817b9 100644 (file)
@@ -271,7 +271,6 @@ static int netprio_device_event(struct notifier_block *unused,
 {
        struct net_device *dev = ptr;
        struct netprio_map *old;
-       u32 max_len = atomic_read(&max_prioidx);
 
        /*
         * Note this is called with rtnl_lock held so we have update side
@@ -279,11 +278,6 @@ static int netprio_device_event(struct notifier_block *unused,
         */
 
        switch (event) {
-
-       case NETDEV_REGISTER:
-               if (max_len)
-                       extend_netdev_table(dev, max_len);
-               break;
        case NETDEV_UNREGISTER:
                old = rtnl_dereference(dev->priomap);
                RCU_INIT_POINTER(dev->priomap, NULL);