From 42a3d3e5c325b00b03ec65a50c598badfc506d72 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 4 Oct 2017 05:04:39 +0200 Subject: receive: we're not planning on turning that into a while loop now --- src/receive.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/receive.c') diff --git a/src/receive.c b/src/receive.c index 507022a..504eb55 100644 --- a/src/receive.c +++ b/src/receive.c @@ -351,19 +351,18 @@ void packet_rx_worker(struct work_struct *work) { struct crypt_ctx *ctx; struct crypt_queue *queue = container_of(work, struct crypt_queue, work); - struct sk_buff *skb; local_bh_disable(); while ((ctx = queue_first_per_peer(queue)) != NULL && atomic_read(&ctx->is_finished)) { queue_dequeue(queue); - if (likely((skb = ctx->skb) != NULL)) { - if (likely(counter_validate(&ctx->keypair->receiving.counter, PACKET_CB(skb)->nonce))) { - skb_reset(skb); - packet_consume_data_done(skb, ctx->peer, &ctx->endpoint, noise_received_with_keypair(&ctx->peer->keypairs, ctx->keypair)); + if (likely(ctx->skb)) { + if (likely(counter_validate(&ctx->keypair->receiving.counter, PACKET_CB(ctx->skb)->nonce))) { + skb_reset(ctx->skb); + packet_consume_data_done(ctx->skb, ctx->peer, &ctx->endpoint, noise_received_with_keypair(&ctx->peer->keypairs, ctx->keypair)); } else { net_dbg_ratelimited("%s: Packet has invalid nonce %Lu (max %Lu)\n", ctx->peer->device->dev->name, PACKET_CB(ctx->skb)->nonce, ctx->keypair->receiving.counter.receive.counter); - dev_kfree_skb(skb); + dev_kfree_skb(ctx->skb); } } noise_keypair_put(ctx->keypair); -- cgit v1.2.3-59-g8ed1b