[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <46236739.5000409@sw.ru>
Date: Mon, 16 Apr 2007 16:08:25 +0400
From: Pavel Emelianov <xemul@...ru>
To: Andrew Morton <akpm@...l.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
devel@...nvz.org
Subject: [PATCH] Set a separate lockdep class for neighbour table's proxy_queue
Otherwise the following calltrace will lead to a wrong
lockdep warning:
neigh_proxy_process()
`- lock(neigh_table->proxy_queue.lock);
arp_redo /* via tbl->proxy_redo */
arp_process
neigh_event_ns
neigh_update
skb_queue_purge
`- lock(neighbor->arp_queue.lock);
This is not a deadlock actually, as neighbor table's proxy_queue
and the neighbor's arp_queue are different queues.
Lockdep thinks there is a deadlock as both queues are initialized
with skb_queue_head_init() and thus have a common class.
View attachment "diff-set-lockdep-class-for-neighbour-table-skb-list" of type "text/plain" (1225 bytes)
Powered by blists - more mailing lists