Commit 3f5312ae authored by Eric W. Biederman's avatar Eric W. Biederman Committed by David S. Miller
Browse files

xfrm: Only compute net once in xfrm_policy_queue_process

parent 850dcc4d
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -1887,6 +1887,7 @@ static void xfrm_policy_queue_process(unsigned long arg)
	struct sock *sk;
	struct dst_entry *dst;
	struct xfrm_policy *pol = (struct xfrm_policy *)arg;
	struct net *net = xp_net(pol);
	struct xfrm_policy_queue *pq = &pol->polq;
	struct flowi fl;
	struct sk_buff_head list;
@@ -1903,8 +1904,7 @@ static void xfrm_policy_queue_process(unsigned long arg)
	spin_unlock(&pq->hold_queue.lock);

	dst_hold(dst->path);
	dst = xfrm_lookup(xp_net(pol), dst->path, &fl,
			  sk, 0);
	dst = xfrm_lookup(net, dst->path, &fl, sk, 0);
	if (IS_ERR(dst))
		goto purge_queue;

@@ -1934,8 +1934,7 @@ static void xfrm_policy_queue_process(unsigned long arg)

		xfrm_decode_session(skb, &fl, skb_dst(skb)->ops->family);
		dst_hold(skb_dst(skb)->path);
		dst = xfrm_lookup(xp_net(pol), skb_dst(skb)->path,
				  &fl, skb->sk, 0);
		dst = xfrm_lookup(net, skb_dst(skb)->path, &fl, skb->sk, 0);
		if (IS_ERR(dst)) {
			kfree_skb(skb);
			continue;