Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
The major features of this series are: - making RCU more aggressive about entering dyntick-idle mode in order to improve energy efficiency - converting a few more call_rcu()s to kfree_rcu()s - applying a number of rcutree fixes and cleanups to rcutiny - removing CONFIG_SMP #ifdefs from treercu - allowing RCU CPU stall times to be set via sysfs - adding CPU-stall capability to rcutorture - adding more RCU-abuse diagnostics - updating documentation - fixing yet more issues located by the still-ongoing top-to-bottom inspection of RCU, this time with a special focus on the CPU-hotplug code path. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -165,13 +165,6 @@ static inline int ext_hash(u16 code)
|
||||
return (code + (code >> 9)) & 0xff;
|
||||
}
|
||||
|
||||
static void ext_int_hash_update(struct rcu_head *head)
|
||||
{
|
||||
struct ext_int_info *p = container_of(head, struct ext_int_info, rcu);
|
||||
|
||||
kfree(p);
|
||||
}
|
||||
|
||||
int register_external_interrupt(u16 code, ext_int_handler_t handler)
|
||||
{
|
||||
struct ext_int_info *p;
|
||||
@@ -202,7 +195,7 @@ int unregister_external_interrupt(u16 code, ext_int_handler_t handler)
|
||||
list_for_each_entry_rcu(p, &ext_int_hash[index], entry)
|
||||
if (p->code == code && p->handler == handler) {
|
||||
list_del_rcu(&p->entry);
|
||||
call_rcu(&p->rcu, ext_int_hash_update);
|
||||
kfree_rcu(p, rcu);
|
||||
}
|
||||
spin_unlock_irqrestore(&ext_int_hash_lock, flags);
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user