Thread (8 messages) flat view 8 messages, 3 authors, 2012-06-21

Re: Possible deadlock in ipv6?

From: Eric Dumazet <hidden>
Date: 2012-06-06 15:53:47

On Wed, 2012-06-06 at 18:49 +0400, Vladimir Davydov wrote:
I'm not familiar with the linux net subsystem, so I would appreciate if 
someone could clarify if the following call chain is possible:

addrconf_ifdown() calls neigh_ifdown(nd_tbl) which locks nd_tbl.lock for 
writing and calls

     pneigh_ifdown
     pndisc_destructor
     ipv6_dev_mc_dec
     __ipv6_dev_mc_dec
     igmp6_group_dropped
     igmp6_leave_group
     igmp6_send
     icmp6_dst_alloc
     ip6_neigh_lookup
     neigh_create

and neigh_create() locks nd_tbl.lock for writing again resulting in a 
deadlock.
It seems a deadlock is possible indeed, good catch !
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help