diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-05-02 02:21:00 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-07-20 17:10:18 -0400 |
commit | a95cded32de3deae13af34715200532e6823cc9f (patch) | |
tree | b6085f03d7fac7993a655e3796b4286c4db96694 | |
parent | 22a3c7d188c2b7bfc8e949bf9fad215c094ba78b (diff) |
sysctl,rcu: Convert call_rcu(free_head) to kfree
The RCU callback free_head just calls kfree(), so we can use kfree_rcu()
instead of call_rcu().
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
-rw-r--r-- | kernel/sysctl.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index f175d98bd355..11d65b531e50 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -1590,16 +1590,11 @@ void sysctl_head_get(struct ctl_table_header *head) | |||
1590 | spin_unlock(&sysctl_lock); | 1590 | spin_unlock(&sysctl_lock); |
1591 | } | 1591 | } |
1592 | 1592 | ||
1593 | static void free_head(struct rcu_head *rcu) | ||
1594 | { | ||
1595 | kfree(container_of(rcu, struct ctl_table_header, rcu)); | ||
1596 | } | ||
1597 | |||
1598 | void sysctl_head_put(struct ctl_table_header *head) | 1593 | void sysctl_head_put(struct ctl_table_header *head) |
1599 | { | 1594 | { |
1600 | spin_lock(&sysctl_lock); | 1595 | spin_lock(&sysctl_lock); |
1601 | if (!--head->count) | 1596 | if (!--head->count) |
1602 | call_rcu(&head->rcu, free_head); | 1597 | kfree_rcu(head, rcu); |
1603 | spin_unlock(&sysctl_lock); | 1598 | spin_unlock(&sysctl_lock); |
1604 | } | 1599 | } |
1605 | 1600 | ||
@@ -1971,10 +1966,10 @@ void unregister_sysctl_table(struct ctl_table_header * header) | |||
1971 | start_unregistering(header); | 1966 | start_unregistering(header); |
1972 | if (!--header->parent->count) { | 1967 | if (!--header->parent->count) { |
1973 | WARN_ON(1); | 1968 | WARN_ON(1); |
1974 | call_rcu(&header->parent->rcu, free_head); | 1969 | kfree_rcu(header->parent, rcu); |
1975 | } | 1970 | } |
1976 | if (!--header->count) | 1971 | if (!--header->count) |
1977 | call_rcu(&header->rcu, free_head); | 1972 | kfree_rcu(header, rcu); |
1978 | spin_unlock(&sysctl_lock); | 1973 | spin_unlock(&sysctl_lock); |
1979 | } | 1974 | } |
1980 | 1975 | ||