diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 68e5809a2153095b9d7d3ae2c16286c6554b125f..9995683447212a70c2cfc392011275e772ffa6dc 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -578,7 +578,7 @@ ipv6_link_dev_addr(struct inet6_dev *idev, struct inet6_ifaddr *ifp)
 			break;
 	}
 
-	list_add(&ifp->if_list, p);
+	list_add_tail(&ifp->if_list, p);
 }
 
 static u32 ipv6_addr_hash(const struct in6_addr *addr)