From: Antonio Quartulli <antonio@meshcoding.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, b.a.t.m.a.n@lists.open-mesh.org,
Antonio Quartulli <antonio@meshcoding.com>,
Marek Lindner <mareklindner@neomailbox.ch>,
Antonio Quartulli <antonio@open-mesh.com>
Subject: [B.A.T.M.A.N.] [PATCH 02/13] batman-adv: don't switch byte order too often if not needed
Date: Thu, 9 Jan 2014 15:52:51 +0100 [thread overview]
Message-ID: <1389279182-3256-3-git-send-email-antonio@meshcoding.com> (raw)
In-Reply-To: <1389279182-3256-1-git-send-email-antonio@meshcoding.com>
From: Antonio Quartulli <antonio@open-mesh.com>
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>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
---
net/batman-adv/routing.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 46278bf..a89e812 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -1135,6 +1135,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)))
@@ -1170,12 +1171,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,
@@ -1186,7 +1188,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);
--
1.8.5.2
WARNING: multiple messages have this Message-ID (diff)
From: Antonio Quartulli <antonio@meshcoding.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, b.a.t.m.a.n@lists.open-mesh.org,
Antonio Quartulli <antonio@open-mesh.com>,
Marek Lindner <mareklindner@neomailbox.ch>,
Antonio Quartulli <antonio@meshcoding.com>
Subject: [PATCH 02/13] batman-adv: don't switch byte order too often if not needed
Date: Thu, 9 Jan 2014 15:52:51 +0100 [thread overview]
Message-ID: <1389279182-3256-3-git-send-email-antonio@meshcoding.com> (raw)
In-Reply-To: <1389279182-3256-1-git-send-email-antonio@meshcoding.com>
From: Antonio Quartulli <antonio@open-mesh.com>
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>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
---
net/batman-adv/routing.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 46278bf..a89e812 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -1135,6 +1135,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)))
@@ -1170,12 +1171,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,
@@ -1186,7 +1188,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);
--
1.8.5.2
next prev parent reply other threads:[~2014-01-09 14:52 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-09 14:52 [B.A.T.M.A.N.] pull request: batman-adv 2014-01-09 Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:52 ` [B.A.T.M.A.N.] [PATCH 01/13] batman-adv: properly rename define in distributed arp table header file Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli [this message]
2014-01-09 14:52 ` [PATCH 02/13] batman-adv: don't switch byte order too often if not needed Antonio Quartulli
2014-01-09 14:52 ` [B.A.T.M.A.N.] [PATCH 03/13] batman-adv: remove FSF address from GPL disclaimer Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:52 ` [B.A.T.M.A.N.] [PATCH 04/13] batman-adv: deselect current GW on client mode switch off Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:52 ` [B.A.T.M.A.N.] [PATCH 05/13] batman-adv: rename gw_deselect() to gw_reselect() Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:52 ` [B.A.T.M.A.N.] [PATCH 06/13] batman-adv: remove parenthesis from return statements Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:52 ` [B.A.T.M.A.N.] [PATCH 07/13] batman-adv: send every DHCP packet as bat-unicast Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:52 ` [B.A.T.M.A.N.] [PATCH 08/13] batman-adv: add isolation_mark sysfs attribute Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:52 ` [B.A.T.M.A.N.] [PATCH 09/13] batman-adv: mark a local client as isolated when needed Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:52 ` [B.A.T.M.A.N.] [PATCH 10/13] batman-adv: print the new BATADV_TT_CLIENT_ISOLA flag Antonio Quartulli
2014-01-09 14:52 ` Antonio Quartulli
2014-01-09 14:53 ` [B.A.T.M.A.N.] [PATCH 11/13] batman-adv: extend the ap_isolation mechanism Antonio Quartulli
2014-01-09 14:53 ` Antonio Quartulli
2014-01-09 14:53 ` [B.A.T.M.A.N.] [PATCH 12/13] batman-adv: create helper function to get AP isolation status Antonio Quartulli
2014-01-09 14:53 ` Antonio Quartulli
2014-01-09 14:53 ` [B.A.T.M.A.N.] [PATCH 13/13] batman-adv: set the isolation mark in the skb if needed Antonio Quartulli
2014-01-09 14:53 ` Antonio Quartulli
2014-01-10 23:00 ` [B.A.T.M.A.N.] pull request: batman-adv 2014-01-09 David Miller
2014-01-10 23:00 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1389279182-3256-3-git-send-email-antonio@meshcoding.com \
--to=antonio@meshcoding.com \
--cc=antonio@open-mesh.com \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
--cc=davem@davemloft.net \
--cc=mareklindner@neomailbox.ch \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.