aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/skmsg.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/skmsg.c')
-rw-r--r--net/core/skmsg.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/core/skmsg.c b/net/core/skmsg.c
index cc94d921476c..93bffaad2135 100644
--- a/net/core/skmsg.c
+++ b/net/core/skmsg.c
@@ -411,6 +411,7 @@ static int sk_psock_skb_ingress(struct sk_psock *psock, struct sk_buff *skb)
411 sk_mem_charge(sk, skb->len); 411 sk_mem_charge(sk, skb->len);
412 copied = skb->len; 412 copied = skb->len;
413 msg->sg.start = 0; 413 msg->sg.start = 0;
414 msg->sg.size = copied;
414 msg->sg.end = num_sge == MAX_MSG_FRAGS ? 0 : num_sge; 415 msg->sg.end = num_sge == MAX_MSG_FRAGS ? 0 : num_sge;
415 msg->skb = skb; 416 msg->skb = skb;
416 417
@@ -554,8 +555,10 @@ static void sk_psock_destroy_deferred(struct work_struct *gc)
554 struct sk_psock *psock = container_of(gc, struct sk_psock, gc); 555 struct sk_psock *psock = container_of(gc, struct sk_psock, gc);
555 556
556 /* No sk_callback_lock since already detached. */ 557 /* No sk_callback_lock since already detached. */
557 strp_stop(&psock->parser.strp); 558
558 strp_done(&psock->parser.strp); 559 /* Parser has been stopped */
560 if (psock->progs.skb_parser)
561 strp_done(&psock->parser.strp);
559 562
560 cancel_work_sync(&psock->work); 563 cancel_work_sync(&psock->work);
561 564