[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4753C5D2.1050704@openvz.org>
Date: Mon, 03 Dec 2007 12:01:06 +0300
From: Pavel Emelyanov <xemul@...nvz.org>
To: Herbert Xu <herbert@...dor.apana.org.au>
CC: Arnaldo Carvalho de Melo <acme@...hat.com>,
Linux Netdev List <netdev@...r.kernel.org>, devel@...nvz.org
Subject: Re: [PATCH (resubmit)] Fix inet_diag.ko register vs rcv race
Herbert Xu wrote:
> On Thu, Nov 29, 2007 at 04:01:25PM +0300, Pavel Emelyanov wrote:
>> @@ -863,13 +861,13 @@ int inet_diag_register(const struct inet_diag_handler *h)
>> if (type >= INET_DIAG_GETSOCK_MAX)
>> goto out;
>>
>> - spin_lock(&inet_diag_register_lock);
>> + mutex_lock(&inet_diag_mutex);
>> err = -EEXIST;
>> if (inet_diag_table[type] == NULL) {
>> inet_diag_table[type] = h;
>> err = 0;
>> }
>> - spin_unlock(&inet_diag_register_lock);
>> + mutex_unlock(&inet_diag_mutex);
>
> Actually this causes a dead-lock when the handlers are built as modules
> because we try to load them with that mutex held.
Ouch! Sorry, I didn't notice this :(
> I've fixed it with this patch on top.
Thanks!
> Cheers,
Pavel
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists