Repository : ssh://git@open-mesh.org/batman-adv
On branch : master
commit 60087ff88fdbb8b6f88a7ab7d4b9a5654c59f592 Author: Antonio Quartulli antonio@open-mesh.com Date: Sun Oct 13 02:50:17 2013 +0200
batman-adv: don't switch byte order too often if not needed
If possible, operations like ntohs/ntohl should not be performed too often. Use a variable to locally store the converted value and then use it.
Signed-off-by: Antonio Quartulli antonio@open-mesh.com Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
60087ff88fdbb8b6f88a7ab7d4b9a5654c59f592 routing.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/routing.c b/routing.c index 71fba14..989a578 100644 --- a/routing.c +++ b/routing.c @@ -1109,6 +1109,7 @@ int batadv_recv_bcast_packet(struct sk_buff *skb, int hdr_size = sizeof(*bcast_packet); int ret = NET_RX_DROP; int32_t seq_diff; + uint32_t seqno;
/* drop packet if it has not necessary minimum size */ if (unlikely(!pskb_may_pull(skb, hdr_size))) @@ -1144,12 +1145,13 @@ int batadv_recv_bcast_packet(struct sk_buff *skb,
spin_lock_bh(&orig_node->bcast_seqno_lock);
+ seqno = ntohl(bcast_packet->seqno); /* check whether the packet is a duplicate */ if (batadv_test_bit(orig_node->bcast_bits, orig_node->last_bcast_seqno, - ntohl(bcast_packet->seqno))) + seqno)) goto spin_unlock;
- seq_diff = ntohl(bcast_packet->seqno) - orig_node->last_bcast_seqno; + seq_diff = seqno - orig_node->last_bcast_seqno;
/* check whether the packet is old and the host just restarted. */ if (batadv_window_protected(bat_priv, seq_diff, @@ -1160,7 +1162,7 @@ int batadv_recv_bcast_packet(struct sk_buff *skb, * if required. */ if (batadv_bit_get_packet(bat_priv, orig_node->bcast_bits, seq_diff, 1)) - orig_node->last_bcast_seqno = ntohl(bcast_packet->seqno); + orig_node->last_bcast_seqno = seqno;
spin_unlock_bh(&orig_node->bcast_seqno_lock);