summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-07-02 14:15:35 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-07-02 14:15:46 +0200
commit774a69cc38694e770d78a8caba6c6ed8bc526e4b (patch)
tree898c365811096ab062bcdc3eeaee74208bafd18f
parentpeer: use LIST_HEAD macro (diff)
downloadwireguard-monolithic-historical-774a69cc38694e770d78a8caba6c6ed8bc526e4b.tar.xz
wireguard-monolithic-historical-774a69cc38694e770d78a8caba6c6ed8bc526e4b.zip
receive: queue dead packets to napi queue instead of empty rx_queue
-rw-r--r--src/queueing.h3
-rw-r--r--src/receive.c5
2 files changed, 3 insertions, 5 deletions
diff --git a/src/queueing.h b/src/queueing.h
index f8de703..e49a464 100644
--- a/src/queueing.h
+++ b/src/queueing.h
@@ -177,8 +177,7 @@ static inline void wg_queue_enqueue_per_peer(struct crypt_queue *queue,
wg_peer_put(peer);
}
-static inline void wg_queue_enqueue_per_peer_napi(struct crypt_queue *queue,
- struct sk_buff *skb,
+static inline void wg_queue_enqueue_per_peer_napi(struct sk_buff *skb,
enum packet_state state)
{
/* We take a reference, because as soon as we call atomic_set, the
diff --git a/src/receive.c b/src/receive.c
index 6a3980b..247a56b 100644
--- a/src/receive.c
+++ b/src/receive.c
@@ -521,8 +521,7 @@ void wg_packet_decrypt_worker(struct work_struct *work)
&PACKET_CB(skb)->keypair->receiving,
&simd_context)) ?
PACKET_STATE_CRYPTED : PACKET_STATE_DEAD;
- wg_queue_enqueue_per_peer_napi(&PACKET_PEER(skb)->rx_queue, skb,
- state);
+ wg_queue_enqueue_per_peer_napi(skb, state);
simd_relax(&simd_context);
}
@@ -551,7 +550,7 @@ static void wg_packet_consume_data(struct wg_device *wg, struct sk_buff *skb)
wg->packet_crypt_wq,
&wg->decrypt_queue.last_cpu);
if (unlikely(ret == -EPIPE))
- wg_queue_enqueue_per_peer(&peer->rx_queue, skb, PACKET_STATE_DEAD);
+ wg_queue_enqueue_per_peer_napi(skb, PACKET_STATE_DEAD);
if (likely(!ret || ret == -EPIPE)) {
rcu_read_unlock_bh();
return;