mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-14 13:39:10 +00:00
batman-adv: Fix broadcast/ogm queue limit on a removed interface
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@c0d3.blue> [sven@narfation.org: fix conflicts with current version] Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch> Signed-off-by: Antonio Quartulli <a@unstable.cc>
This commit is contained in:
parent
d1a65f1741
commit
c4fdb6cff2
@ -675,6 +675,9 @@ batadv_purge_outstanding_packets(struct batadv_priv *bat_priv,
|
|||||||
|
|
||||||
if (pending) {
|
if (pending) {
|
||||||
hlist_del(&forw_packet->list);
|
hlist_del(&forw_packet->list);
|
||||||
|
if (!forw_packet->own)
|
||||||
|
atomic_inc(&bat_priv->bcast_queue_left);
|
||||||
|
|
||||||
batadv_forw_packet_free(forw_packet);
|
batadv_forw_packet_free(forw_packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -702,6 +705,9 @@ batadv_purge_outstanding_packets(struct batadv_priv *bat_priv,
|
|||||||
|
|
||||||
if (pending) {
|
if (pending) {
|
||||||
hlist_del(&forw_packet->list);
|
hlist_del(&forw_packet->list);
|
||||||
|
if (!forw_packet->own)
|
||||||
|
atomic_inc(&bat_priv->batman_queue_left);
|
||||||
|
|
||||||
batadv_forw_packet_free(forw_packet);
|
batadv_forw_packet_free(forw_packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user