From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:36795 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933168AbcFLVf4 (ORCPT ); Sun, 12 Jun 2016 17:35:56 -0400 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, "Marek Lindner" , "=?UTF-8?q?Linus=20L=C3=BCssing?=" , "Sven Eckelmann" , "Antonio Quartulli" Date: Sun, 12 Jun 2016 22:34:42 +0100 Message-ID: Subject: [PATCH 3.2 27/46] batman-adv: Fix broadcast/ogm queue limit on a removed interface In-Reply-To: Sender: stable-owner@vger.kernel.org List-ID: 3.2.81-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Linus Lüssing commit c4fdb6cff2aa0ae740c5f19b6f745cbbe786d42f upstream. When removing a single interface while a broadcast or ogm packet is still pending then we will free the forward packet without releasing the queue slots again. This patch is supposed to fix this issue. Fixes: 6d5808d4ae1b ("batman-adv: Add missing hardif_free_ref in forw_packet_free") Signed-off-by: Linus Lüssing [sven@narfation.org: fix conflicts with current version] Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli [bwh: Backported to 3.2: adjust context] Signed-off-by: Ben Hutchings --- net/batman-adv/send.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/net/batman-adv/send.c +++ b/net/batman-adv/send.c @@ -375,6 +375,9 @@ void purge_outstanding_packets(struct ba if (pending) { hlist_del(&forw_packet->list); + if (!forw_packet->own) + atomic_inc(&bat_priv->bcast_queue_left); + forw_packet_free(forw_packet); } } @@ -404,6 +407,9 @@ void purge_outstanding_packets(struct ba if (pending) { hlist_del(&forw_packet->list); + if (!forw_packet->own) + atomic_inc(&bat_priv->batman_queue_left); + forw_packet_free(forw_packet); } }