Thread (127 messages) 127 messages, 5 authors, 2016-06-14

Re: [PATCH 3.16 046/114] batman-adv: Fix broadcast/ogm queue limit on a removed interface

From: Sven Eckelmann <sven@narfation.org>
Date: 2016-06-14 06:07:24
Also in: lkml

Hi,

On Monday 13 June 2016 23:53:06 Ben Hutchings wrote:
[...]
Yes, I recognise this bug.  I've updated this patch to the version below.
looks good to me. Thanks for updating the patch :)

Kind regards,
	Sven
quoted hunk ↗ jump to hunk
---
batman-adv: Fix broadcast/ogm queue limit on a removed interface

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 [off-list ref]
[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
@@ -611,6 +611,9 @@ batadv_purge_outstanding_packets(struct

 		if (pending) {
 			hlist_del(&forw_packet->list);
+			if (!forw_packet->own)
+				atomic_inc(&bat_priv->bcast_queue_left);
+
 			batadv_forw_packet_free(forw_packet);
 		}
 	}
@@ -638,6 +641,9 @@ batadv_purge_outstanding_packets(struct

 		if (pending) {
 			hlist_del(&forw_packet->list);
+			if (!forw_packet->own)
+				atomic_inc(&bat_priv->batman_queue_left);
+
 			batadv_forw_packet_free(forw_packet);
 		}
 	}
-- 
Ben Hutchings
One of the nice things about standards is that there are so many of
them.

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help