]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Revert "inet: update the IP ID generation algorithm to higher standards."
authorBen Hutchings <ben@decadent.org.uk>
Fri, 9 Aug 2019 19:09:49 +0000 (20:09 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 13 Aug 2019 11:39:28 +0000 (12:39 +0100)
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 <ben@decadent.org.uk>
net/ipv4/route.c
net/ipv6/ip6_output.c

index 660848116761bb1195477183a650de4e9045fc97..236c6c6134d11b7badd39a3cca27932cb813971e 100644 (file)
@@ -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);
index bb98cde51476a42ac2c75f26754e502257b785d7..e59b30054b0f9937c5bfc0c36ef709d9c76586fb 100644 (file)
@@ -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);