| From foo@baz Sat Mar 18 22:03:53 CST 2017 |
| From: David Ahern <dsa@cumulusnetworks.com> |
| Date: Fri, 10 Mar 2017 09:46:15 -0800 |
| Subject: mpls: Send route delete notifications when router module is unloaded |
| |
| From: David Ahern <dsa@cumulusnetworks.com> |
| |
| |
| [ Upstream commit e37791ec1ad785b59022ae211f63a16189bacebf ] |
| |
| When the mpls_router module is unloaded, mpls routes are deleted but |
| notifications are not sent to userspace leaving userspace caches |
| out of sync. Add the call to mpls_notify_route in mpls_net_exit as |
| routes are freed. |
| |
| Fixes: 0189197f44160 ("mpls: Basic routing support") |
| Signed-off-by: David Ahern <dsa@cumulusnetworks.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/mpls/af_mpls.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/net/mpls/af_mpls.c |
| +++ b/net/mpls/af_mpls.c |
| @@ -1696,6 +1696,7 @@ static void mpls_net_exit(struct net *ne |
| for (index = 0; index < platform_labels; index++) { |
| struct mpls_route *rt = rtnl_dereference(platform_label[index]); |
| RCU_INIT_POINTER(platform_label[index], NULL); |
| + mpls_notify_route(net, index, rt, NULL, NULL); |
| mpls_rt_free(rt); |
| } |
| rtnl_unlock(); |