]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'listen_refactor_part_13'
authorDavid S. Miller <davem@davemloft.net>
Thu, 19 Mar 2015 02:00:44 +0000 (22:00 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 Mar 2015 02:00:44 +0000 (22:00 -0400)
commitdb95cf16f3489b460d0a2e5aa953cf0e2d4da562
tree6ef039c1602a24c64549663d734d10d2a382f08e
parent6b3c6d5df8d49fd70c3943eab1ca58d8de4144f7
parent61b8d02964c0b4a0cc7d498283ef3c923a18781b
Merge branch 'listen_refactor_part_13'

Eric Dumazet says:

====================
inet: tcp listener refactoring, part 13

inet_hash functions are in a bad state : Too much IPv6/IPv4 copy/pasting.

Lets refactor a bit.

Idea is that we do not want to have an equivalent of inet_csk(sk)->icsk_af_ops
for request socks in order to be able to use the right variant.

In this patch series, I started to let IPv6/IPv4 converge to common helpers.

Idea is to use ipv6_addr_set_v4mapped() even for AF_INET sockets, so that
we can test
       if (sk->sk_family == AF_INET6 &&
           !ipv6_addr_v4mapped(&sk->sk_v6_daddr))
to tell if we deal with an IPv6 socket, or IPv4 one, at least in slow paths.

Ideally, we could save 8 bytes per struct sock_common, if we
alias skc_daddr & skc_rcv_saddr to skc_v6_daddr[3]/skc_v6_rcv_saddr[3].
====================

Signed-off-by: David S. Miller <davem@davemloft.net>