Re: [PATCH 3.16 046/114] batman-adv: Fix broadcast/ogm queue limit on a removed interface
From: Linus Lüssing <hidden>
Date: 2016-06-13 19:35:59
Also in:
batman, lkml
From: Linus Lüssing <hidden>
Date: 2016-06-13 19:35:59
Also in:
batman, lkml
On Mon, Jun 13, 2016 at 07:36:37PM +0100, Ben Hutchings wrote:
3.16.36-rc1 review patch. If anyone has any objections, please let me know.
Hi Ben, This one looks weird. The version you added for 3.2.81-rc1 looked better. Cheers, Linus
------------------ From: Linus Lüssing <redacted> 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 <redacted> [sven@narfation.org: fix conflicts with current version] Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Marek Lindner <redacted> Signed-off-by: Antonio Quartulli <redacted> Signed-off-by: Ben Hutchings <redacted> --- net/batman-adv/send.c | 6 ++++++ 1 file changed, 6 insertions(+)--- a/net/batman-adv/send.c +++ b/net/batman-adv/send.c@@ -638,6 +638,12 @@ batadv_purge_outstanding_packets(struct if (pending) { hlist_del(&forw_packet->list); + if (!forw_packet->own) + atomic_inc(&bat_priv->bcast_queue_left); + + if (!forw_packet->own) + atomic_inc(&bat_priv->batman_queue_left); + batadv_forw_packet_free(forw_packet); } }