xfrm: move the checking for old xfrm_policy hold_queue to beginning
if hold_queue of old xfrm_policy is NULL, return directly, then not need to run other codes, especially take the spin lock Signed-off-by: Li RongQing <roy.qing.li@gmail.com> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:
Родитель
586f2eb416
Коммит
de2ad486cb
|
@ -700,6 +700,9 @@ static void xfrm_policy_requeue(struct xfrm_policy *old,
|
|||
struct xfrm_policy_queue *pq = &old->polq;
|
||||
struct sk_buff_head list;
|
||||
|
||||
if (skb_queue_empty(&pq->hold_queue))
|
||||
return;
|
||||
|
||||
__skb_queue_head_init(&list);
|
||||
|
||||
spin_lock_bh(&pq->hold_queue.lock);
|
||||
|
@ -708,9 +711,6 @@ static void xfrm_policy_requeue(struct xfrm_policy *old,
|
|||
xfrm_pol_put(old);
|
||||
spin_unlock_bh(&pq->hold_queue.lock);
|
||||
|
||||
if (skb_queue_empty(&list))
|
||||
return;
|
||||
|
||||
pq = &new->polq;
|
||||
|
||||
spin_lock_bh(&pq->hold_queue.lock);
|
||||
|
|
Загрузка…
Ссылка в новой задаче