diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2016-11-15 20:19:20 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2016-11-15 20:19:20 +0100 |
commit | 6e71b31d5116a9260be12e855672196bcec618cb (patch) | |
tree | 07f4c09df2f716ea45f3ac4de67674158bf39f61 | |
parent | d60ef8063c80b899b57fa1450ba48eb9d42a620f (diff) |
various: nits from willy
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r-- | src/data.c | 6 | ||||
-rw-r--r-- | src/device.c | 2 | ||||
-rw-r--r-- | src/hashtables.c | 4 | ||||
-rw-r--r-- | src/receive.c | 2 |
4 files changed, 6 insertions, 8 deletions
@@ -439,11 +439,9 @@ void packet_consume_data(struct sk_buff *skb, size_t offset, struct wireguard_de ret = -EINVAL; rcu_read_lock(); keypair = noise_keypair_get((struct noise_keypair *)index_hashtable_lookup(&wg->index_hashtable, INDEX_HASHTABLE_KEYPAIR, idx)); - if (unlikely(!keypair)) { - rcu_read_unlock(); - goto err; - } rcu_read_unlock(); + if (unlikely(!keypair)) + goto err; #ifdef CONFIG_WIREGUARD_PARALLEL if (cpumask_weight(cpu_online_mask) > 1) { unsigned int cpu = choose_cpu(idx); diff --git a/src/device.c b/src/device.c index 564d09b..5a294ec 100644 --- a/src/device.c +++ b/src/device.c @@ -121,8 +121,8 @@ static netdev_tx_t xmit(struct sk_buff *skb, struct net_device *dev) read_unlock_bh(&peer->endpoint_lock); if (unlikely(ret)) { net_dbg_ratelimited("No valid endpoint has been configured or discovered for device\n"); - peer_put(peer); skb_unsendable(skb, dev); + peer_put(peer); return -EHOSTUNREACH; } diff --git a/src/hashtables.c b/src/hashtables.c index 8616015..d2a9cf9 100644 --- a/src/hashtables.c +++ b/src/hashtables.c @@ -68,7 +68,7 @@ void index_hashtable_init(struct index_hashtable *table) __le32 index_hashtable_insert(struct index_hashtable *table, struct index_hashtable_entry *entry) { struct index_hashtable_entry *existing_entry; - uint64_t rand; + unsigned long rand = get_random_long(); spin_lock(&table->lock); hlist_del_init_rcu(&entry->index_hash); @@ -78,7 +78,7 @@ __le32 index_hashtable_insert(struct index_hashtable *table, struct index_hashta search_unused_slot: /* First we try to find an unused slot, randomly, while unlocked. */ - rand = get_random_long(); + ++rand; entry->index = (__force __le32)siphash24((uint8_t *)&rand, sizeof(rand), table->key); hlist_for_each_entry_rcu(existing_entry, index_bucket(table, entry->index), index_hash) { if (existing_entry->index == entry->index) diff --git a/src/receive.c b/src/receive.c index 76a1960..0878872 100644 --- a/src/receive.c +++ b/src/receive.c @@ -265,9 +265,9 @@ static void receive_data_packet(struct sk_buff *skb, struct wireguard_peer *peer peer_put(routed_peer); /* We don't need the extra reference. */ if (unlikely(routed_peer != peer)) { - net_dbg_skb_ratelimited("Packet has unallowed src IP (%pISc) from peer %Lu (%pISpfsc)\n", skb, peer->internal_id, &peer->endpoint.addr_storage); ++dev->stats.rx_errors; ++dev->stats.rx_frame_errors; + net_dbg_skb_ratelimited("Packet has unallowed src IP (%pISc) from peer %Lu (%pISpfsc)\n", skb, peer->internal_id, &peer->endpoint.addr_storage); goto packet_processed; } |