From: Ben Hutchings Date: Fri, 9 Aug 2019 19:09:49 +0000 (+0100) Subject: Revert "inet: update the IP ID generation algorithm to higher standards." X-Git-Tag: v3.16.72~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=05f4b670242e2b27c95d6eca88ac1fbf79c27a56;p=thirdparty%2Fkernel%2Fstable.git Revert "inet: update the IP ID generation algorithm to higher standards." This reverts commit 8b197d3ce585d6777197e0633d71e5af7d98cb35, which was a stable-specific improvement to IP ID selection. I will apply the upstream changes instead. Signed-off-by: Ben Hutchings --- diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 660848116761b..236c6c6134d11 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -487,15 +487,13 @@ EXPORT_SYMBOL(ip_idents_reserve); void __ip_select_ident(struct iphdr *iph, int segs) { static u32 ip_idents_hashrnd __read_mostly; - static u32 ip_idents_hashrnd_extra __read_mostly; u32 hash, id; net_get_random_once(&ip_idents_hashrnd, sizeof(ip_idents_hashrnd)); - net_get_random_once(&ip_idents_hashrnd_extra, sizeof(ip_idents_hashrnd_extra)); hash = jhash_3words((__force u32)iph->daddr, (__force u32)iph->saddr, - iph->protocol ^ ip_idents_hashrnd_extra, + iph->protocol, ip_idents_hashrnd); id = ip_idents_reserve(hash, segs); iph->id = htons(id); diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index bb98cde51476a..e59b30054b0f9 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -541,15 +541,12 @@ static void ip6_copy_metadata(struct sk_buff *to, struct sk_buff *from) static void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt) { static u32 ip6_idents_hashrnd __read_mostly; - static u32 ip6_idents_hashrnd_extra __read_mostly; u32 hash, id; net_get_random_once(&ip6_idents_hashrnd, sizeof(ip6_idents_hashrnd)); - net_get_random_once(&ip6_idents_hashrnd_extra, sizeof(ip6_idents_hashrnd_extra)); hash = __ipv6_addr_jhash(&rt->rt6i_dst.addr, ip6_idents_hashrnd); hash = __ipv6_addr_jhash(&rt->rt6i_src.addr, hash); - hash = jhash_1word(hash, ip6_idents_hashrnd_extra); id = ip_idents_reserve(hash, 1); fhdr->identification = htonl(id);