Commit e4d0fe71 authored by Julian Anastasov's avatar Julian Anastasov Committed by Pablo Neira Ayuso

ipvs: avoid kfree_rcu without 2nd arg

Avoid possible synchronize_rcu() as part from the
kfree_rcu() call when 2nd arg is not provided.
Signed-off-by: default avatarJulian Anastasov <ja@ssi.bg>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent f6477ec6
...@@ -461,6 +461,7 @@ void ip_vs_stats_free(struct ip_vs_stats *stats); ...@@ -461,6 +461,7 @@ void ip_vs_stats_free(struct ip_vs_stats *stats);
/* Multiple chains processed in same tick */ /* Multiple chains processed in same tick */
struct ip_vs_est_tick_data { struct ip_vs_est_tick_data {
struct rcu_head rcu_head;
struct hlist_head chains[IPVS_EST_TICK_CHAINS]; struct hlist_head chains[IPVS_EST_TICK_CHAINS];
DECLARE_BITMAP(present, IPVS_EST_TICK_CHAINS); DECLARE_BITMAP(present, IPVS_EST_TICK_CHAINS);
DECLARE_BITMAP(full, IPVS_EST_TICK_CHAINS); DECLARE_BITMAP(full, IPVS_EST_TICK_CHAINS);
......
...@@ -549,7 +549,7 @@ void ip_vs_stop_estimator(struct netns_ipvs *ipvs, struct ip_vs_stats *stats) ...@@ -549,7 +549,7 @@ void ip_vs_stop_estimator(struct netns_ipvs *ipvs, struct ip_vs_stats *stats)
__set_bit(row, kd->avail); __set_bit(row, kd->avail);
if (!kd->tick_len[row]) { if (!kd->tick_len[row]) {
RCU_INIT_POINTER(kd->ticks[row], NULL); RCU_INIT_POINTER(kd->ticks[row], NULL);
kfree_rcu(td); kfree_rcu(td, rcu_head);
} }
kd->est_count--; kd->est_count--;
if (kd->est_count) { if (kd->est_count) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment