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 | ||
