On Donnerstag, 6. Oktober 2016 01:43:08 CEST Linus Lüssing wrote:
As long as there is still a reference for a hard interface held, there might still be a forwarding packet relying on its attributes.
Therefore avoid setting hard_iface->soft_iface to NULL when disabling a hard interface.
This fixes the following, potential splat:
[...]
What happened here is, that there was still a forw_packet (here: a BATMAN IV OGM) in the queue of eth3 with the forw_packet->if_incoming set to eth1 and the forw_packet->if_outgoing set to eth3.
When eth3 is to be deactivated and removed, then this thread waits for the forw_packet queued on eth3 to finish. Because eth1 was deactivated and removed earlier and by that had forw_packet->if_incoming->soft_iface, set to NULL, the splat when trying to send/flush the OGM on eth3 occures.
Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue
Changes in v3:
- none
Changes in v2:
- none, new patch
net/batman-adv/hard-interface.c | 1 - 1 file changed, 1 deletion(-)
Applied in bac7733d06fac28ce68a79bcdf88b2b265600cf2 [1]
Kind regards, Sven
[1] https://git.open-mesh.org/batman-adv.git/commit/bac7733d06fac28ce68a79bcdf88...