mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 14:41:39 +00:00
net: remove rcu locking from fib_rules_event()
We hold RTNL at this point and dont use RCU variants of list traversals, we dont need rcu_read_lock()/rcu_read_unlock() Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
14bb478983
commit
2fb3573dfb
@ -108,7 +108,7 @@ fib_rules_register(struct fib_rules_ops *tmpl, struct net *net)
|
|||||||
struct fib_rules_ops *ops;
|
struct fib_rules_ops *ops;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
ops = kmemdup(tmpl, sizeof (*ops), GFP_KERNEL);
|
ops = kmemdup(tmpl, sizeof(*ops), GFP_KERNEL);
|
||||||
if (ops == NULL)
|
if (ops == NULL)
|
||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
||||||
@ -123,7 +123,6 @@ fib_rules_register(struct fib_rules_ops *tmpl, struct net *net)
|
|||||||
|
|
||||||
return ops;
|
return ops;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL_GPL(fib_rules_register);
|
EXPORT_SYMBOL_GPL(fib_rules_register);
|
||||||
|
|
||||||
void fib_rules_cleanup_ops(struct fib_rules_ops *ops)
|
void fib_rules_cleanup_ops(struct fib_rules_ops *ops)
|
||||||
@ -157,7 +156,6 @@ void fib_rules_unregister(struct fib_rules_ops *ops)
|
|||||||
|
|
||||||
call_rcu(&ops->rcu, fib_rules_put_rcu);
|
call_rcu(&ops->rcu, fib_rules_put_rcu);
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL_GPL(fib_rules_unregister);
|
EXPORT_SYMBOL_GPL(fib_rules_unregister);
|
||||||
|
|
||||||
static int fib_rule_match(struct fib_rule *rule, struct fib_rules_ops *ops,
|
static int fib_rule_match(struct fib_rule *rule, struct fib_rules_ops *ops,
|
||||||
@ -220,7 +218,6 @@ out:
|
|||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL_GPL(fib_rules_lookup);
|
EXPORT_SYMBOL_GPL(fib_rules_lookup);
|
||||||
|
|
||||||
static int validate_rulemsg(struct fib_rule_hdr *frh, struct nlattr **tb,
|
static int validate_rulemsg(struct fib_rule_hdr *frh, struct nlattr **tb,
|
||||||
@ -613,7 +610,7 @@ static int fib_nl_dumprule(struct sk_buff *skb, struct netlink_callback *cb)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
cb->args[1] = 0;
|
cb->args[1] = 0;
|
||||||
skip:
|
skip:
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
@ -685,7 +682,6 @@ static int fib_rules_event(struct notifier_block *this, unsigned long event,
|
|||||||
struct fib_rules_ops *ops;
|
struct fib_rules_ops *ops;
|
||||||
|
|
||||||
ASSERT_RTNL();
|
ASSERT_RTNL();
|
||||||
rcu_read_lock();
|
|
||||||
|
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case NETDEV_REGISTER:
|
case NETDEV_REGISTER:
|
||||||
@ -699,8 +695,6 @@ static int fib_rules_event(struct notifier_block *this, unsigned long event,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
rcu_read_unlock();
|
|
||||||
|
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user