netprio_cgroup: don't allocate prio table when a device is registered
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>
This commit is contained in:
parent
a87dfe14a7
commit
f5c38208d3
|
@ -271,7 +271,6 @@ static int netprio_device_event(struct notifier_block *unused,
|
||||||
{
|
{
|
||||||
struct net_device *dev = ptr;
|
struct net_device *dev = ptr;
|
||||||
struct netprio_map *old;
|
struct netprio_map *old;
|
||||||
u32 max_len = atomic_read(&max_prioidx);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note this is called with rtnl_lock held so we have update side
|
* 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) {
|
switch (event) {
|
||||||
|
|
||||||
case NETDEV_REGISTER:
|
|
||||||
if (max_len)
|
|
||||||
extend_netdev_table(dev, max_len);
|
|
||||||
break;
|
|
||||||
case NETDEV_UNREGISTER:
|
case NETDEV_UNREGISTER:
|
||||||
old = rtnl_dereference(dev->priomap);
|
old = rtnl_dereference(dev->priomap);
|
||||||
RCU_INIT_POINTER(dev->priomap, NULL);
|
RCU_INIT_POINTER(dev->priomap, NULL);
|
||||||
|
|
Loading…
Reference in New Issue