OSDN Git Service

xfrm interface: fix management of phydev
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Mon, 15 Jul 2019 10:00:23 +0000 (12:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Dec 2019 07:52:42 +0000 (08:52 +0100)
commit153bd25686d069083734ff9ce216b8dd2891da79
treec2d71624ccbda93b9507024b2439513a4d84cb42
parentcbb629783d9252f5a5eb4585d5844e6ae1ccafd4
xfrm interface: fix management of phydev

commit 22d6552f827ef76ade3edf6bbb3f05048a0a7d8b upstream.

With the current implementation, phydev cannot be removed:

$ ip link add dummy type dummy
$ ip link add xfrm1 type xfrm dev dummy if_id 1
$ ip l d dummy
 kernel:[77938.465445] unregister_netdevice: waiting for dummy to become free. Usage count = 1

Manage it like in ip tunnels, ie just keep the ifindex. Not that the side
effect, is that the phydev is now optional.

Fixes: f203b76d7809 ("xfrm: Add virtual xfrm interfaces")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Tested-by: Julien Floret <julien.floret@6wind.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/net/xfrm.h
net/xfrm/xfrm_interface.c