netdev
[Top] [All Lists]

Re: "Badness" again

To: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Subject: Re: "Badness" again
From: "David S. Miller" <davem@xxxxxxxxxxxxx>
Date: Fri, 14 Jan 2005 21:06:51 -0800
Cc: jgarzik@xxxxxxxxx, yoshfuji@xxxxxxxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <20050115002638.GA13849@xxxxxxxxxxxxxxxxxxx>
References: <41E83B8D.8020003@xxxxxxxxx> <20050114215833.GA12981@xxxxxxxxxxxxxxxxxxx> <41E844AC.6040200@xxxxxxxxx> <20050115002638.GA13849@xxxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
On Sat, 15 Jan 2005 11:26:38 +1100
Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote:

> All your "badness" messages start with a call to udpv6_sendmsg().
> That function calls ip6_dst_lookup() to get its dst entry.  Note
> that udpv6_sendmsg() does not hold a lock on the sk at all.  However,
> ip6_dst_lookup() uses __sk_dst_check() which is only safe if you can
> either guarantee single-threadedness or if you hold sk_dst_lock.

Good catch, that looks to be it.

I wouldn't have caught the necessary dst_hold(*dst) removal
too, in fact I thought this hunk of your patch was a bug at
first :-)

I'll apply this, thanks a lot Herbert.

<Prev in Thread] Current Thread [Next in Thread>