tunnels: correct conditional build of MPLS and IPv6
authorSimon Horman <simon.horman@netronome.com>
Sun, 10 Jul 2016 01:20:11 +0000 (10:20 +0900)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Jul 2016 20:27:06 +0000 (13:27 -0700)
commitaa9667e7f626232cde5310435dc96bfbe796f05c
tree244dda85eaeb736bb280a8e37c13156e01c2c081
parent4154cb40e71a7255bae0c67734fe85950c9254e5
tunnels: correct conditional build of MPLS and IPv6

Using a combination if #if conditionals and goto labels to unwind
tunnel4_init seems unwieldy. This patch takes a simpler approach of
directly unregistering previously registered protocols when an error
occurs.

This fixes a number of problems with the current implementation
including the potential presence of labels when they are unused
and the potential absence of unregister code when it is needed.

Fixes: 8afe97e5d416 ("tunnels: support MPLS over IPv4 tunnels")
Signed-off-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tunnel4.c