net,rcu: convert call_rcu(sctp_local_addr_free) to kfree_rcu()
The rcu callback sctp_local_addr_free() just calls a kfree(), so we use kfree_rcu() instead of the call_rcu(sctp_local_addr_free). Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
This commit is contained in:
Родитель
37b6b935e9
Коммит
1231f0baa5
|
@ -115,7 +115,6 @@
|
|||
* sctp/protocol.c
|
||||
*/
|
||||
extern struct sock *sctp_get_ctl_sock(void);
|
||||
extern void sctp_local_addr_free(struct rcu_head *head);
|
||||
extern int sctp_copy_local_addr_list(struct sctp_bind_addr *,
|
||||
sctp_scope_t, gfp_t gfp,
|
||||
int flags);
|
||||
|
|
|
@ -219,7 +219,7 @@ int sctp_del_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *del_addr)
|
|||
}
|
||||
|
||||
if (found) {
|
||||
call_rcu(&addr->rcu, sctp_local_addr_free);
|
||||
kfree_rcu(addr, rcu);
|
||||
SCTP_DBG_OBJCNT_DEC(addr);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -123,7 +123,7 @@ static int sctp_inet6addr_event(struct notifier_block *this, unsigned long ev,
|
|||
}
|
||||
spin_unlock_bh(&sctp_local_addr_lock);
|
||||
if (found)
|
||||
call_rcu(&addr->rcu, sctp_local_addr_free);
|
||||
kfree_rcu(addr, rcu);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -230,13 +230,6 @@ static void sctp_free_local_addr_list(void)
|
|||
}
|
||||
}
|
||||
|
||||
void sctp_local_addr_free(struct rcu_head *head)
|
||||
{
|
||||
struct sctp_sockaddr_entry *e = container_of(head,
|
||||
struct sctp_sockaddr_entry, rcu);
|
||||
kfree(e);
|
||||
}
|
||||
|
||||
/* Copy the local addresses which are valid for 'scope' into 'bp'. */
|
||||
int sctp_copy_local_addr_list(struct sctp_bind_addr *bp, sctp_scope_t scope,
|
||||
gfp_t gfp, int copy_flags)
|
||||
|
@ -681,7 +674,7 @@ static int sctp_inetaddr_event(struct notifier_block *this, unsigned long ev,
|
|||
}
|
||||
spin_unlock_bh(&sctp_local_addr_lock);
|
||||
if (found)
|
||||
call_rcu(&addr->rcu, sctp_local_addr_free);
|
||||
kfree_rcu(addr, rcu);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче