diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-09-17 05:49:02 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-09-17 06:03:01 +0200 |
commit | 34fd8f675f6094eecaa336bf1e294cf808a35ce3 (patch) | |
tree | fec0983301001191b99d8ec47262499e57a15a56 /src/receive.c | |
parent | chacha20-x86_64: cascade down implementations (diff) | |
download | wireguard-monolithic-historical-34fd8f675f6094eecaa336bf1e294cf808a35ce3.tar.xz wireguard-monolithic-historical-34fd8f675f6094eecaa336bf1e294cf808a35ce3.zip |
crypto: pass simd by reference
Diffstat (limited to 'src/receive.c')
-rw-r--r-- | src/receive.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/receive.c b/src/receive.c index 4500a85..aa1f216 100644 --- a/src/receive.c +++ b/src/receive.c @@ -245,7 +245,7 @@ static void keep_key_fresh(struct wireguard_peer *peer) } static bool skb_decrypt(struct sk_buff *skb, struct noise_symmetric_key *key, - simd_context_t simd_context) + simd_context_t *simd_context) { struct scatterlist sg[MAX_SKB_FRAGS + 8]; struct sk_buff *trailer; @@ -500,20 +500,21 @@ void packet_decrypt_worker(struct work_struct *work) { struct crypt_queue *queue = container_of(work, struct multicore_worker, work)->ptr; - simd_context_t simd_context = simd_get(); + simd_context_t simd_context; struct sk_buff *skb; + simd_get(&simd_context); while ((skb = ptr_ring_consume_bh(&queue->ring)) != NULL) { enum packet_state state = likely(skb_decrypt(skb, &PACKET_CB(skb)->keypair->receiving, - simd_context)) ? + &simd_context)) ? PACKET_STATE_CRYPTED : PACKET_STATE_DEAD; queue_enqueue_per_peer_napi(&PACKET_PEER(skb)->rx_queue, skb, state); - simd_context = simd_relax(simd_context); + simd_relax(&simd_context); } - simd_put(simd_context); + simd_put(&simd_context); } static void packet_consume_data(struct wireguard_device *wg, |