From patchwork Sat Sep 18 19:01:22 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Eckelmann X-Patchwork-Id: 352 Return-Path: Received: from mail.gmx.net (mailout-de.gmx.net [213.165.64.22]) by open-mesh.org (Postfix) with SMTP id A2E3015453A for ; Sat, 18 Sep 2010 21:00:43 +0200 (CEST) Received: (qmail invoked by alias); 18 Sep 2010 19:00:42 -0000 Received: from unknown (EHLO sven-desktop.lazhur.ath.cx) [88.130.165.18] by mail.gmx.net (mp022) with SMTP; 18 Sep 2010 21:00:42 +0200 X-Authenticated: #15668376 X-Provags-ID: V01U2FsdGVkX19pgV1NgftpSc6BKSz+uXUVodVuK2Cor2wiboCjto wz+SNLe9F3Il6d From: Sven Eckelmann To: greg@kroah.com Date: Sat, 18 Sep 2010 21:01:22 +0200 Message-Id: <1284836482-23431-13-git-send-email-sven.eckelmann@gmx.de> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1284836482-23431-1-git-send-email-sven.eckelmann@gmx.de> References: <1284836482-23431-1-git-send-email-sven.eckelmann@gmx.de> X-Y-GMX-Trusted: 0 Cc: b.a.t.m.a.n@lists.open-mesh.org, Marek Lindner Subject: [B.A.T.M.A.N.] [PATCH 12/12] Staging: batman-adv: Introduce update_primary_addr to update mac address X-BeenThere: b.a.t.m.a.n@lists.open-mesh.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Sep 2010 19:00:43 -0000 From: Marek Lindner set_primary_if is currently misused to update the mac address in vis packets. This unneeded and introduces overhead due to other operations which must be done when updating the primary interface. Signed-off-by: Marek Lindner Signed-off-by: Sven Eckelmann --- drivers/staging/batman-adv/hard-interface.c | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/staging/batman-adv/hard-interface.c b/drivers/staging/batman-adv/hard-interface.c index a9d6f1d..7b77cf2 100644 --- a/drivers/staging/batman-adv/hard-interface.c +++ b/drivers/staging/batman-adv/hard-interface.c @@ -106,11 +106,22 @@ out: return batman_if; } +static void update_primary_addr(struct bat_priv *bat_priv) +{ + struct vis_packet *vis_packet; + + vis_packet = (struct vis_packet *) + bat_priv->my_vis_info->skb_packet->data; + memcpy(vis_packet->vis_orig, + bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN); + memcpy(vis_packet->sender_orig, + bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN); +} + static void set_primary_if(struct bat_priv *bat_priv, struct batman_if *batman_if) { struct batman_packet *batman_packet; - struct vis_packet *vis_packet; struct batman_if *old_if; if (batman_if) @@ -129,12 +140,7 @@ static void set_primary_if(struct bat_priv *bat_priv, batman_packet->flags = PRIMARIES_FIRST_HOP; batman_packet->ttl = TTL; - vis_packet = (struct vis_packet *) - bat_priv->my_vis_info->skb_packet->data; - memcpy(vis_packet->vis_orig, - bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN); - memcpy(vis_packet->sender_orig, - bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN); + update_primary_addr(bat_priv); /*** * hacky trick to make sure that we send the HNA information via @@ -516,7 +522,7 @@ static int hard_if_event(struct notifier_block *this, bat_priv = netdev_priv(batman_if->soft_iface); if (batman_if == bat_priv->primary_if) - set_primary_if(bat_priv, batman_if); + update_primary_addr(bat_priv); break; default: break;