From patchwork Fri Jul 23 22:14:29 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Eckelmann X-Patchwork-Id: 315 Return-Path: Received: from mail.gmx.net (mailout-de.gmx.net [213.165.64.22]) by open-mesh.net (Postfix) with SMTP id 70B6B15453D for ; Sat, 24 Jul 2010 00:14:33 +0200 (CEST) Received: (qmail invoked by alias); 23 Jul 2010 22:14:32 -0000 Received: from unknown (EHLO sven-desktop.lazhur.ath.cx) [89.246.195.217] by mail.gmx.net (mp024) with SMTP; 24 Jul 2010 00:14:32 +0200 X-Authenticated: #15668376 X-Provags-ID: V01U2FsdGVkX19xBYBWx15x5Yv0OtIM7KwbrCx0tcxscBdzrjRO77 OcdSguAqDyeLXW From: Sven Eckelmann To: b.a.t.m.a.n@lists.open-mesh.org Date: Sat, 24 Jul 2010 00:14:29 +0200 Message-Id: <1279923269-26513-1-git-send-email-sven.eckelmann@gmx.de> X-Mailer: git-send-email 1.7.1 X-Y-GMX-Trusted: 0 Subject: [B.A.T.M.A.N.] [PATCH] batman-adv: Only copy skb data for multiple broadcasts 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: Fri, 23 Jul 2010 22:14:33 -0000 batman-adv tries to resend broadcasts on all interfaces up to three times. For each round and each interface it must provide a skb which gets consumed by the sending function. It is unnecessary to copy the data of each broadcast because the actual data is either not shared or already copied by add_bcast_packet_to_list. So it is enough to just copy the skb control data Signed-off-by: Sven Eckelmann --- batman-adv/send.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/batman-adv/send.c b/batman-adv/send.c index cd6be2b..934bd8a 100644 --- a/batman-adv/send.c +++ b/batman-adv/send.c @@ -476,7 +476,7 @@ static void send_outstanding_bcast_packet(struct work_struct *work) rcu_read_lock(); list_for_each_entry_rcu(batman_if, &if_list, list) { /* send a copy of the saved skb */ - skb1 = skb_copy(forw_packet->skb, GFP_ATOMIC); + skb1 = skb_clone(forw_packet->skb, GFP_ATOMIC); if (skb1) send_skb_packet(skb1, batman_if, broadcast_addr);