mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sedat Dilek <sedat.dilek@googlemail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: piotr@hosowicz.com, LKML <linux-kernel@vger.kernel.org>,
	netdev@vger.kernel.org, David Miller <davem@davemloft.net>,
	Jiri Olsa <jolsa@redhat.com>, Jongman Heo <jongman.heo@gmail.com>
Subject: Re: [2.6.34-rc5-git6] EIP: is at inet6_csk_bind_conflict + 06xe/0xb7  [ipv6]
Date: Sun, 25 Apr 2010 18:55:52 +0200	[thread overview]
Message-ID: <j2p2d0a357f1004250955i59969a2cp9fd9eb9f3ef22d4b@mail.gmail.com> (raw)
In-Reply-To: <1272213597.2069.32.camel@edumazet-laptop>

[-- Attachment #1: Type: text/plain, Size: 2241 bytes --]

Rebuild ipv6 kernel-modules by:

$ make M=net/ipv6

...and copied net/ipv6/*.ko and net/ipv6/netfilter/*.ko files manually
to the right place.

Applied your patch (seen on netdev ML) already and booted into new kernel.
Works, thanks.

Tested-by: Sedat Dilek <sedat.dilek@gmail.com>

- Sedat -

On Sun, Apr 25, 2010 at 6:39 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le dimanche 25 avril 2010 à 18:36 +0200, Piotr Hosowicz a écrit :
>> On 25.04.2010 18:31, Sedat Dilek wrote:
>> > [ CCing netdev ML ]
>> >
>> > Confirmed: The revert-patch [1] fixes the problem here.
>>
>> I confirm, I've built a git6 kernel and it works fine.
>>
>> > See also "Bug 15847 -  crash in inet6_csk_bind_conflict" [2].
>> >
>> > Feel free to add a... Tested-by: Sedat Dilek<sedat.dilek@gmail.com>
>>
>> I added created and tested phrase in my archive. ;-) Thank you a lot. I
>> hope there will be no this error in git7.
>>
>
> Did you test the proposed fix ?
>
>
> [PATCH] ipv6: Fix inet6_csk_bind_conflict()
>
> Commit fda48a0d7a84 (tcp: bind() fix when many ports are bound)
> introduced a bug on IPV6 part.
> We should not call ipv6_addr_any(inet6_rcv_saddr(sk2)) but
> ipv6_addr_any(inet6_rcv_saddr(sk)) because sk2 can be IPV4, while sk is
> IPV6.
>
> Reported-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
> ---
> diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c
> index b4b7d40..3a4d92b 100644
> --- a/net/ipv6/inet6_connection_sock.c
> +++ b/net/ipv6/inet6_connection_sock.c
> @@ -48,7 +48,7 @@ int inet6_csk_bind_conflict(const struct sock *sk,
>                             ipv6_rcv_saddr_equal(sk, sk2))
>                                break;
>                        else if (sk->sk_reuse && sk2->sk_reuse &&
> -                               !ipv6_addr_any(inet6_rcv_saddr(sk2)) &&
> +                               !ipv6_addr_any(inet6_rcv_saddr(sk)) &&
>                                ipv6_rcv_saddr_equal(sk, sk2))
>                                break;
>                }
>
>
>

[-- Attachment #2: ipv6-Fix-inet6_csk_bind_conflict.patch --]
[-- Type: text/x-diff, Size: 882 bytes --]

[PATCH] ipv6: Fix inet6_csk_bind_conflict()

Commit fda48a0d7a84 (tcp: bind() fix when many ports are bound)
introduced a bug on IPV6 part.
We should not call ipv6_addr_any(inet6_rcv_saddr(sk2)) but
ipv6_addr_any(inet6_rcv_saddr(sk)) because sk2 can be IPV4, while sk is
IPV6.

Reported-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
---
diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c
index b4b7d40..3a4d92b 100644
--- a/net/ipv6/inet6_connection_sock.c
+++ b/net/ipv6/inet6_connection_sock.c
@@ -48,7 +48,7 @@ int inet6_csk_bind_conflict(const struct sock *sk,
 			     ipv6_rcv_saddr_equal(sk, sk2))
 				break;
 			else if (sk->sk_reuse && sk2->sk_reuse &&
-				!ipv6_addr_any(inet6_rcv_saddr(sk2)) &&
+				!ipv6_addr_any(inet6_rcv_saddr(sk)) &&
 				ipv6_rcv_saddr_equal(sk, sk2))
 				break;
 		}

  reply	other threads:[~2010-04-25 16:55 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-25 15:11 Sedat Dilek
2010-04-25 15:23 ` Piotr Hosowicz
2010-04-25 16:31   ` Sedat Dilek
2010-04-25 16:36     ` Piotr Hosowicz
2010-04-25 16:39       ` Eric Dumazet
2010-04-25 16:55         ` Sedat Dilek [this message]
2010-04-25 17:01           ` Piotr Hosowicz
2010-04-25 17:08             ` Eric Dumazet
2010-04-25 17:25             ` Sedat Dilek
  -- strict thread matches above, loose matches on Subject: below --
2010-04-25 13:13 Sedat Dilek
2010-04-25 14:26 ` Jongman Heo
2010-04-25 14:46   ` Piotr Hosowicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=j2p2d0a357f1004250955i59969a2cp9fd9eb9f3ef22d4b@mail.gmail.com \
    --to=sedat.dilek@googlemail.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=jongman.heo@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=piotr@hosowicz.com \
    --cc=sedat.dilek@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®