net: ipv6: lower ndisc notifier priority below addrconf
authorDavid Ahern <dsahern@gmail.com>
Tue, 8 Aug 2017 21:51:02 +0000 (15:51 -0600)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Aug 2017 05:40:04 +0000 (22:40 -0700)
ndisc_notify is used to send unsolicited neighbor advertisements
(e.g., on a link up). Currently, the ndisc notifier is run before the
addrconf notifer which means NA's are not sent for link-local addresses
which are added by the addrconf notifier.

Fix by lowering the priority of the ndisc notifier. Setting the priority
to ADDRCONF_NOTIFY_PRIORITY - 5 means it runs after addrconf and before
the route notifier which is ADDRCONF_NOTIFY_PRIORITY - 10.

Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ndisc.c

index 0327c1f2e6fc5a8d22795afb476a1639bb341e99..5e338eb89509b1df6ebd060f8bd19fcb4b86fe05 100644 (file)
@@ -1779,6 +1779,7 @@ static int ndisc_netdev_event(struct notifier_block *this, unsigned long event,
 
 static struct notifier_block ndisc_netdev_notifier = {
        .notifier_call = ndisc_netdev_event,
+       .priority = ADDRCONF_NOTIFY_PRIORITY - 5,
 };
 
 #ifdef CONFIG_SYSCTL