summaryrefslogtreecommitdiff
path: root/net/ipv6/output_core.c
diff options
context:
space:
mode:
authorMartin KaFai Lau <kafai@fb.com>2015-05-23 06:55:56 +0300
committerDavid S. Miller <davem@davemloft.net>2015-05-25 20:25:32 +0300
commit286c2349f6665c3e67f464a5faa14a0e28be4842 (patch)
treea6ece8bde9655f0c39edb9d10a8867be7229fb69 /net/ipv6/output_core.c
parent01b6961410b76af228eb993220024ff6db6ba80c (diff)
downloadlinux-286c2349f6665c3e67f464a5faa14a0e28be4842.tar.xz
ipv6: Clean up ipv6_select_ident() and ip6_fragment()
This patch changes the ipv6_select_ident() signature to return a fragment id instead of taking a whole frag_hdr as a param to only set the frag_hdr->identification. It also cleans up ip6_fragment() to obtain the fragment id at the beginning instead of using multiple "if" later to check fragment id has been generated or not. Signed-off-by: Martin KaFai Lau <kafai@fb.com> Cc: Hannes Frederic Sowa <hannes@stressinduktion.org> Cc: Steffen Klassert <steffen.klassert@secunet.com> Cc: Julian Anastasov <ja@ssi.bg> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/output_core.c')
-rw-r--r--net/ipv6/output_core.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/net/ipv6/output_core.c b/net/ipv6/output_core.c
index 85892af57364..ef0e2326496b 100644
--- a/net/ipv6/output_core.c
+++ b/net/ipv6/output_core.c
@@ -60,8 +60,7 @@ void ipv6_proxy_select_ident(struct net *net, struct sk_buff *skb)
}
EXPORT_SYMBOL_GPL(ipv6_proxy_select_ident);
-void ipv6_select_ident(struct net *net, struct frag_hdr *fhdr,
- struct rt6_info *rt)
+u32 ipv6_select_ident(struct net *net, struct rt6_info *rt)
{
static u32 ip6_idents_hashrnd __read_mostly;
u32 id;
@@ -70,7 +69,7 @@ void ipv6_select_ident(struct net *net, struct frag_hdr *fhdr,
id = __ipv6_select_ident(net, ip6_idents_hashrnd, &rt->rt6i_dst.addr,
&rt->rt6i_src.addr);
- fhdr->identification = htonl(id);
+ return htonl(id);
}
EXPORT_SYMBOL(ipv6_select_ident);