aboutsummaryrefslogtreecommitdiffstats
path: root/net/l2tp/l2tp_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/l2tp/l2tp_core.c')
-rw-r--r--net/l2tp/l2tp_core.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/l2tp/l2tp_core.c b/net/l2tp/l2tp_core.c
index 456b52d8f6d8..d1ab3a236cca 100644
--- a/net/l2tp/l2tp_core.c
+++ b/net/l2tp/l2tp_core.c
@@ -428,6 +428,7 @@ start:
428 session->name, L2TP_SKB_CB(skb)->ns, 428 session->name, L2TP_SKB_CB(skb)->ns,
429 L2TP_SKB_CB(skb)->length, session->nr, 429 L2TP_SKB_CB(skb)->length, session->nr,
430 skb_queue_len(&session->reorder_q)); 430 skb_queue_len(&session->reorder_q));
431 session->reorder_skip = 1;
431 __skb_unlink(skb, &session->reorder_q); 432 __skb_unlink(skb, &session->reorder_q);
432 kfree_skb(skb); 433 kfree_skb(skb);
433 if (session->deref) 434 if (session->deref)
@@ -436,6 +437,14 @@ start:
436 } 437 }
437 438
438 if (L2TP_SKB_CB(skb)->has_seq) { 439 if (L2TP_SKB_CB(skb)->has_seq) {
440 if (session->reorder_skip) {
441 PRINTK(session->debug, L2TP_MSG_SEQ, KERN_DEBUG,
442 "%s: advancing nr to next pkt: %u -> %u",
443 session->name, session->nr,
444 L2TP_SKB_CB(skb)->ns);
445 session->reorder_skip = 0;
446 session->nr = L2TP_SKB_CB(skb)->ns;
447 }
439 if (L2TP_SKB_CB(skb)->ns != session->nr) { 448 if (L2TP_SKB_CB(skb)->ns != session->nr) {
440 PRINTK(session->debug, L2TP_MSG_SEQ, KERN_DEBUG, 449 PRINTK(session->debug, L2TP_MSG_SEQ, KERN_DEBUG,
441 "%s: holding oos pkt %u len %d, " 450 "%s: holding oos pkt %u len %d, "