This allows userland to set a possibly different link-local address like say one based on RFC7217. Signed-off-by: Roy Marples --- net/ipv6/addrconf.c.orig 2014-08-10 19:39:50.377073417 +0000 +++ net/ipv6/addrconf.c 2014-08-10 20:19:03.139002051 +0000 @@ -2751,6 +2751,11 @@ static void addrconf_dev_config(struct n if (IS_ERR(idev)) return; + /* If we already have a link-local address, don't bother + * adding a new one. */ + if (ipv6_get_lladdr(dev, &addr, 0) == 0) + return; + memset(&addr, 0, sizeof(struct in6_addr)); addr.s6_addr32[0] = htonl(0xFE800000);