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: > > 3.16.36-rc1 review patch. If anyone has any objections, please let me know. > [...] > > --- 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); > > } > > } > > 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 <linus.luessing@xxxxxxxxx> [sven@xxxxxxxxxxxxx: fix conflicts with current version] Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx> Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx> Signed-off-by: Antonio Quartulli <a@xxxxxxxxxxx> Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> --- 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.
Attachment:
signature.asc
Description: This is a digitally signed message part