The VRF driver always allocates an IPv4 dst entry for a VRF device and
prevents the device from being registered if the allocation fails.
Therefore, there is no need to check if the entry exists when tearing
down a VRF device. Remove the check.
Note that the same is not true for the IPv6 dst entry. Its creation can
be skipped if IPv6 is administratively disabled (i.e.,
'ipv6.disable=1').
Reviewed-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260326203233.1128554-2-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* move dev in dst's to loopback so this VRF device can be deleted
* - based on dst_ifdown
*/
- if (rth) {
- dst = &rth->dst;
- netdev_ref_replace(dst->dev, net->loopback_dev,
- &dst->dev_tracker, GFP_KERNEL);
- dst->dev = net->loopback_dev;
- dst_release(dst);
- }
+ dst = &rth->dst;
+ netdev_ref_replace(dst->dev, net->loopback_dev,
+ &dst->dev_tracker, GFP_KERNEL);
+ dst->dev = net->loopback_dev;
+ dst_release(dst);
}
static int vrf_rtable_create(struct net_device *dev)