]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'ipv6_percpu_rt_deadlock'
authorDavid S. Miller <davem@davemloft.net>
Mon, 17 Aug 2015 21:28:04 +0000 (14:28 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Aug 2015 21:28:04 +0000 (14:28 -0700)
commit6a64139fa209c4ea6f4dd790961c7c3e14d73192
treea2a8f4fa5c5237c7c27ce41e1c1537ee3e043ed8
parent1a1a4961949b3e10e83d1bc41883a9a2044501f8
parentefd822e362c1bc7629634f8d5e046469e795d658
Merge branch 'ipv6_percpu_rt_deadlock'

Martin KaFai Lau says:

====================
ipv6: Fix a potential deadlock when creating pcpu rt

v1 -> v2:
A minor change in the commit message of patch 2.

This patch series fixes a potential deadlock when creating a pcpu rt.
It happens when dst_alloc() decided to run gc. Something like this:

read_lock(&table->tb6_lock);
ip6_rt_pcpu_alloc()
=> dst_alloc()
=> ip6_dst_gc()
=> write_lock(&table->tb6_lock); /* oops */

Patch 1 and 2 are some prep works.
Patch 3 is the fix.

Original report: https://bugzilla.kernel.org/show_bug.cgi?id=102291
====================

Signed-off-by: David S. Miller <davem@davemloft.net>