Re: [PATCH 3.16 046/114] batman-adv: Fix broadcast/ogm queue limit on a removed interface
From: Ben Hutchings <hidden>
Date: 2016-06-13 22:53:23
Also in:
lkml
On Mon, 2016-06-13 at 21:33 +0200, Sven Eckelmann wrote:
Hi, looks like the patch is broken (at least it does something different than the non-stable patch does). On Monday 13 June 2016 19:36:37 Ben Hutchings wrote:quoted
3.16.36-rc1 review patch. If anyone has any objections, please let me know.[...]quoted
--- a/net/batman-adv/send.c +++ b/net/batman-adv/send.c@@ -638,6 +638,12 @@ batadv_purge_outstanding_packets(structif (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); } }It seems to be a problem with the way GNU patch solved the conflicts with the slightly different orig file (moved the hunks together when it shouldn't have). GregKH also had this problem [1]
Yes, I recognise this bug. I've updated this patch to the version below.
Ben.
---
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 <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@@ -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
- signature.asc [application/pgp-signature] 819 bytes