]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net: mpls: Fix notifications when deleting a device
authorBenjamin Poirier <bpoirier@nvidia.com>
Mon, 29 Nov 2021 06:15:05 +0000 (15:15 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Dec 2021 07:50:13 +0000 (08:50 +0100)
commit68ae929717b7ccf7b1060e9824da9ca215cc639b
tree2f76f1f04950185c72b0b7f3c0e651d0524a9626
parent57af54a56024435d83e44c78449513b414eb6edf
net: mpls: Fix notifications when deleting a device

commit 7d4741eacdefa5f0475431645b56baf00784df1f upstream.

There are various problems related to netlink notifications for mpls route
changes in response to interfaces being deleted:
* delete interface of only nexthop
DELROUTE notification is missing RTA_OIF attribute
* delete interface of non-last nexthop
NEWROUTE notification is missing entirely
* delete interface of last nexthop
DELROUTE notification is missing nexthop

All of these problems stem from the fact that existing routes are modified
in-place before sending a notification. Restructure mpls_ifdown() to avoid
changing the route in the DELROUTE cases and to create a copy in the
NEWROUTE case.

Fixes: f8efb73c97e2 ("mpls: multipath route support")
Signed-off-by: Benjamin Poirier <bpoirier@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/mpls/af_mpls.c