[maint] batman-adv: Revert "fix splat on disabling an interface"

Message ID 20161102171443.9491-1-sven@narfation.org (mailing list archive)
State Accepted, archived
Commit 89d0e31c2cc790743ee373b717c05ca85caf8384
Delegated to: Sven Eckelmann
Headers

Commit Message

Sven Eckelmann Nov. 2, 2016, 5:14 p.m. UTC
  The commit bac7733d06fa ("batman-adv: fix splat on disabling an interface")
fixed a warning but at the same time broke the rtnl function add_slave for
devices which were temporarily removed.

batadv_softif_slave_add requires soft_iface of and hard_iface to be NULL
before it is allowed to be enslaved. But this resetting of soft_iface to
NULL in batadv_hardif_disable_interface was removed with the aforementioned
commit.

Reported-by: Julian Labus <julian@freifunk-rtk.de>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Cc: Linus Lüssing <linus.luessing@c0d3.blue>
---
This is a simple revert. Linus, feel free to propose a patch to remove the
"|| hard_iface->soft_iface" when you think it is safe and you've tested
that it works

Bug report for it can be found at https://www.open-mesh.org/issues/307
---
 net/batman-adv/hard-interface.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Linus Lüssing Nov. 4, 2016, 3:42 a.m. UTC | #1
On Wed, Nov 02, 2016 at 06:14:43PM +0100, Sven Eckelmann wrote:
> The commit bac7733d06fa ("batman-adv: fix splat on disabling an interface")
> fixed a warning but at the same time broke the rtnl function add_slave for
> devices which were temporarily removed.
> 
> batadv_softif_slave_add requires soft_iface of and hard_iface to be NULL
> before it is allowed to be enslaved. But this resetting of soft_iface to
> NULL in batadv_hardif_disable_interface was removed with the aforementioned
> commit.
> 
> Reported-by: Julian Labus <julian@freifunk-rtk.de>
> Signed-off-by: Sven Eckelmann <sven@narfation.org>
> Cc: Linus Lüssing <linus.luessing@c0d3.blue>
> ---

Like I said in the ticket, I can't reproduce the splat with
v2016.4 plus this revert right now.

Maybe changes to the hard-interface handling might have fixed it
properly in the mean time.

Acked-by: Linus Lüssing <linus.luessing@c0d3.blue>
  
Sven Eckelmann Nov. 4, 2016, 7:16 a.m. UTC | #2
On Mittwoch, 2. November 2016 18:14:43 CET Sven Eckelmann wrote:
> The commit bac7733d06fa ("batman-adv: fix splat on disabling an interface")
> fixed a warning but at the same time broke the rtnl function add_slave for
> devices which were temporarily removed.
> 
> batadv_softif_slave_add requires soft_iface of and hard_iface to be NULL
> before it is allowed to be enslaved. But this resetting of soft_iface to
> NULL in batadv_hardif_disable_interface was removed with the aforementioned
> commit.
> 
> Reported-by: Julian Labus <julian@freifunk-rtk.de>
> Signed-off-by: Sven Eckelmann <sven@narfation.org>
> Cc: Linus Lüssing <linus.luessing@c0d3.blue>
> Acked-by: Linus Lüssing <linus.luessing@c0d3.blue>
> ---
> This is a simple revert. Linus, feel free to propose a patch to remove the
> "|| hard_iface->soft_iface" when you think it is safe and you've tested
> that it works
> 
> Bug report for it can be found at https://www.open-mesh.org/issues/307
> ---
>  net/batman-adv/hard-interface.c | 1 +
>  1 file changed, 1 insertion(+)

Applied in 89d0e31c2cc790743ee373b717c05ca85caf8384 [1].

Kind regards,
        Sven

[1] https://git.open-mesh.org/batman-adv.git/commit/89d0e31c2cc790743ee373b717c05ca85caf8384
  

Patch

diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index e034afb..08ce361 100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -652,6 +652,7 @@  void batadv_hardif_disable_interface(struct batadv_hard_iface *hard_iface,
 			batadv_softif_destroy_sysfs(hard_iface->soft_iface);
 	}
 
+	hard_iface->soft_iface = NULL;
 	batadv_hardif_put(hard_iface);
 
 out: