diff options
| author | David S. Miller <davem@davemloft.net> | 2011-12-23 17:13:56 -0500 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-12-23 17:13:56 -0500 | 
| commit | abb434cb0539fb355c1c921f8fd761efbbac3462 (patch) | |
| tree | 24a7d99ec161f8fd4dc9ff03c9c4cc93be883ce6 /net/xfrm/xfrm_policy.c | |
| parent | 2494654d4890316e7340fb8b3458daad0474a1b9 (diff) | |
| parent | 6350323ad8def2ac00d77cdee3b79c9b9fba75c4 (diff) | |
| download | olio-linux-3.10-abb434cb0539fb355c1c921f8fd761efbbac3462.tar.xz olio-linux-3.10-abb434cb0539fb355c1c921f8fd761efbbac3462.zip  | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
	net/bluetooth/l2cap_core.c
Just two overlapping changes, one added an initialization of
a local variable, and another change added a new local variable.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
| -rw-r--r-- | net/xfrm/xfrm_policy.c | 18 | 
1 files changed, 14 insertions, 4 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index eb6b0b7781a..7661576b6f4 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -2276,8 +2276,6 @@ static void __xfrm_garbage_collect(struct net *net)  {  	struct dst_entry *head, *next; -	flow_cache_flush(); -  	spin_lock_bh(&xfrm_policy_sk_bundle_lock);  	head = xfrm_policy_sk_bundles;  	xfrm_policy_sk_bundles = NULL; @@ -2290,6 +2288,18 @@ static void __xfrm_garbage_collect(struct net *net)  	}  } +static void xfrm_garbage_collect(struct net *net) +{ +	flow_cache_flush(); +	__xfrm_garbage_collect(net); +} + +static void xfrm_garbage_collect_deferred(struct net *net) +{ +	flow_cache_flush_deferred(); +	__xfrm_garbage_collect(net); +} +  static void xfrm_init_pmtu(struct dst_entry *dst)  {  	do { @@ -2422,7 +2432,7 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)  		if (likely(dst_ops->neigh_lookup == NULL))  			dst_ops->neigh_lookup = xfrm_neigh_lookup;  		if (likely(afinfo->garbage_collect == NULL)) -			afinfo->garbage_collect = __xfrm_garbage_collect; +			afinfo->garbage_collect = xfrm_garbage_collect_deferred;  		xfrm_policy_afinfo[afinfo->family] = afinfo;  	}  	write_unlock_bh(&xfrm_policy_afinfo_lock); @@ -2516,7 +2526,7 @@ static int xfrm_dev_event(struct notifier_block *this, unsigned long event, void  	switch (event) {  	case NETDEV_DOWN: -		__xfrm_garbage_collect(dev_net(dev)); +		xfrm_garbage_collect(dev_net(dev));  	}  	return NOTIFY_DONE;  }  |