<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/ipv6, branch v3.17-rc7</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>xfrm: Generate blackhole routes only from route lookup functions</title>
<updated>2014-09-16T08:08:40+00:00</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2014-09-16T08:08:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f92ee61982d6da15a9e49664ecd6405a15a2ee56'/>
<id>f92ee61982d6da15a9e49664ecd6405a15a2ee56</id>
<content type='text'>
Currently we genarate a blackhole route route whenever we have
matching policies but can not resolve the states. Here we assume
that dst_output() is called to kill the balckholed packets.
Unfortunately this assumption is not true in all cases, so
it is possible that these packets leave the system unwanted.

We fix this by generating blackhole routes only from the
route lookup functions, here we can guarantee a call to
dst_output() afterwards.

Fixes: 2774c131b1d ("xfrm: Handle blackhole route creation via afinfo.")
Reported-by: Konstantinos Kolelis &lt;k.kolelis@sirrix.com&gt;
Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently we genarate a blackhole route route whenever we have
matching policies but can not resolve the states. Here we assume
that dst_output() is called to kill the balckholed packets.
Unfortunately this assumption is not true in all cases, so
it is possible that these packets leave the system unwanted.

We fix this by generating blackhole routes only from the
route lookup functions, here we can guarantee a call to
dst_output() afterwards.

Fixes: 2774c131b1d ("xfrm: Handle blackhole route creation via afinfo.")
Reported-by: Konstantinos Kolelis &lt;k.kolelis@sirrix.com&gt;
Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: clean up anycast when an interface is destroyed</title>
<updated>2014-09-12T21:33:06+00:00</updated>
<author>
<name>Sabrina Dubroca</name>
<email>sd@queasysnail.net</email>
</author>
<published>2014-09-10T21:23:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=381f4dca48d23e155b936b86ccd3ff12f073cf0f'/>
<id>381f4dca48d23e155b936b86ccd3ff12f073cf0f</id>
<content type='text'>
If we try to rmmod the driver for an interface while sockets with
setsockopt(JOIN_ANYCAST) are alive, some refcounts aren't cleaned up
and we get stuck on:

  unregister_netdevice: waiting for ens3 to become free. Usage count = 1

If we LEAVE_ANYCAST/close everything before rmmod'ing, there is no
problem.

We need to perform a cleanup similar to the one for multicast in
addrconf_ifdown(how == 1).

Signed-off-by: Sabrina Dubroca &lt;sd@queasysnail.net&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we try to rmmod the driver for an interface while sockets with
setsockopt(JOIN_ANYCAST) are alive, some refcounts aren't cleaned up
and we get stuck on:

  unregister_netdevice: waiting for ens3 to become free. Usage count = 1

If we LEAVE_ANYCAST/close everything before rmmod'ing, there is no
problem.

We need to perform a cleanup similar to the one for multicast in
addrconf_ifdown(how == 1).

Signed-off-by: Sabrina Dubroca &lt;sd@queasysnail.net&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: restore the behavior of ipv6_sock_ac_drop()</title>
<updated>2014-09-07T23:10:07+00:00</updated>
<author>
<name>WANG Cong</name>
<email>xiyou.wangcong@gmail.com</email>
</author>
<published>2014-09-05T21:33:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=de185ab46cb02df9738b0d898b0c3a89181c5526'/>
<id>de185ab46cb02df9738b0d898b0c3a89181c5526</id>
<content type='text'>
It is possible that the interface is already gone after joining
the list of anycast on this interface as we don't hold a refcount
for the device, in this case we are safe to ignore the error.

What's more important, for API compatibility we should not
change this behavior for applications even if it were correct.

Fixes: commit a9ed4a2986e13011 ("ipv6: fix rtnl locking in setsockopt for anycast and multicast")
Cc: Sabrina Dubroca &lt;sd@queasysnail.net&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is possible that the interface is already gone after joining
the list of anycast on this interface as we don't hold a refcount
for the device, in this case we are safe to ignore the error.

What's more important, for API compatibility we should not
change this behavior for applications even if it were correct.

Fixes: commit a9ed4a2986e13011 ("ipv6: fix rtnl locking in setsockopt for anycast and multicast")
Cc: Sabrina Dubroca &lt;sd@queasysnail.net&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: use addrconf_get_prefix_route() to remove peer addr</title>
<updated>2014-09-06T00:13:24+00:00</updated>
<author>
<name>Nicolas Dichtel</name>
<email>nicolas.dichtel@6wind.com</email>
</author>
<published>2014-09-03T21:59:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e7478dfc4656f4a739ed1b07cfd59c12f8eb112e'/>
<id>e7478dfc4656f4a739ed1b07cfd59c12f8eb112e</id>
<content type='text'>
addrconf_get_prefix_route() ensures to get the right route in the right table.

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
addrconf_get_prefix_route() ensures to get the right route in the right table.

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: fix a refcnt leak with peer addr</title>
<updated>2014-09-06T00:13:24+00:00</updated>
<author>
<name>Nicolas Dichtel</name>
<email>nicolas.dichtel@6wind.com</email>
</author>
<published>2014-09-03T21:59:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f24062b07dda89b0e24fa48e7bc3865a725f5ee6'/>
<id>f24062b07dda89b0e24fa48e7bc3865a725f5ee6</id>
<content type='text'>
There is no reason to take a refcnt before deleting the peer address route.
It's done some lines below for the local prefix route because
inet6_ifa_finish_destroy() will release it at the end.
For the peer address route, we want to free it right now.

This bug has been introduced by commit
caeaba79009c ("ipv6: add support of peer address").

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is no reason to take a refcnt before deleting the peer address route.
It's done some lines below for the local prefix route because
inet6_ifa_finish_destroy() will release it at the end.
For the peer address route, we want to free it right now.

This bug has been introduced by commit
caeaba79009c ("ipv6: add support of peer address").

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: fix rtnl locking in setsockopt for anycast and multicast</title>
<updated>2014-09-05T18:52:28+00:00</updated>
<author>
<name>Sabrina Dubroca</name>
<email>sd@queasysnail.net</email>
</author>
<published>2014-09-02T08:29:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a9ed4a2986e13011fcf4ed2d1a1647c53112f55b'/>
<id>a9ed4a2986e13011fcf4ed2d1a1647c53112f55b</id>
<content type='text'>
Calling setsockopt with IPV6_JOIN_ANYCAST or IPV6_LEAVE_ANYCAST
triggers the assertion in addrconf_join_solict()/addrconf_leave_solict()

ipv6_sock_ac_join(), ipv6_sock_ac_drop(), ipv6_sock_ac_close() need to
take RTNL before calling ipv6_dev_ac_inc/dec. Same thing with
ipv6_sock_mc_join(), ipv6_sock_mc_drop(), ipv6_sock_mc_close() before
calling ipv6_dev_mc_inc/dec.

This patch moves ASSERT_RTNL() up a level in the call stack.

Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Sabrina Dubroca &lt;sd@queasysnail.net&gt;
Reported-by: Tommi Rantala &lt;tt.rantala@gmail.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calling setsockopt with IPV6_JOIN_ANYCAST or IPV6_LEAVE_ANYCAST
triggers the assertion in addrconf_join_solict()/addrconf_leave_solict()

ipv6_sock_ac_join(), ipv6_sock_ac_drop(), ipv6_sock_ac_close() need to
take RTNL before calling ipv6_dev_ac_inc/dec. Same thing with
ipv6_sock_mc_join(), ipv6_sock_mc_drop(), ipv6_sock_mc_close() before
calling ipv6_dev_mc_inc/dec.

This patch moves ASSERT_RTNL() up a level in the call stack.

Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Sabrina Dubroca &lt;sd@queasysnail.net&gt;
Reported-by: Tommi Rantala &lt;tt.rantala@gmail.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: fix missing dependencies in NETFILTER_XT_TARGET_LOG</title>
<updated>2014-09-02T20:59:54+00:00</updated>
<author>
<name>Pablo Neira</name>
<email>pablo@netfilter.org</email>
</author>
<published>2014-09-02T12:26:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=41ad82f7f8f59a472c8e8ccca56a9c6bdf3c5092'/>
<id>41ad82f7f8f59a472c8e8ccca56a9c6bdf3c5092</id>
<content type='text'>
make defconfig reports:

warning: (NETFILTER_XT_TARGET_LOG) selects NF_LOG_IPV6 which has unmet direct dependencies (NET &amp;&amp; INET &amp;&amp; IPV6 &amp;&amp; NETFILTER &amp;&amp; NETFILTER_ADVANCED)

Fixes: d79a61d netfilter: NETFILTER_XT_TARGET_LOG selects NF_LOG_*
Reported-by: kbuild test robot &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
make defconfig reports:

warning: (NETFILTER_XT_TARGET_LOG) selects NF_LOG_IPV6 which has unmet direct dependencies (NET &amp;&amp; INET &amp;&amp; IPV6 &amp;&amp; NETFILTER &amp;&amp; NETFILTER_ADVANCED)

Fixes: d79a61d netfilter: NETFILTER_XT_TARGET_LOG selects NF_LOG_*
Reported-by: kbuild test robot &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf</title>
<updated>2014-09-02T20:56:30+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2014-09-02T20:56:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=abccc5878a31bc921e9b1e254c74ea20761f4c4b'/>
<id>abccc5878a31bc921e9b1e254c74ea20761f4c4b</id>
<content type='text'>
Pablo Neira Ayuso says:

====================
pull request: Netfilter/IPVS fixes for net

The following patchset contains seven Netfilter fixes for your net
tree, they are:

1) Make the NAT infrastructure independent of x_tables, some users are
   already starting to test nf_tables with NAT without enabling x_tables.
   Without this patch for Kconfig, there's a superfluous dependency
   between NAT and x_tables.
2) Allow to use 0 in the cgroup match, the kernel rejects with -EINVAL
   with no good reason. From Daniel Borkmann.

3) Select CONFIG_NF_NAT from the nf_tables NAT expression, this also
   resolves another NAT dependency with x_tables.

4) Use HAVE_JUMP_LABEL instead of CONFIG_JUMP_LABEL in the Netfilter hook
   code as elsewhere in the kernel to resolve toolchain problems, from
   Zhouyi Zhou.

5) Use iptunnel_handle_offloads() to set up tunnel encapsulation
   depending on the offload capabilities, reported by Alex Gartrell
   patch from Julian Anastasov.

6) Fix wrong family when registering the ip_vs_local_reply6() hook,
   also from Julian.

7) Select the NF_LOG_* symbols from NETFILTER_XT_TARGET_LOG. Rafał
   Miłecki reported that when jumping from 3.16 to 3.17-rc, his log
   target is not selected anymore due to changes in the previous
   development cycle to accomodate the full logging support for
   nf_tables.
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pablo Neira Ayuso says:

====================
pull request: Netfilter/IPVS fixes for net

The following patchset contains seven Netfilter fixes for your net
tree, they are:

1) Make the NAT infrastructure independent of x_tables, some users are
   already starting to test nf_tables with NAT without enabling x_tables.
   Without this patch for Kconfig, there's a superfluous dependency
   between NAT and x_tables.
2) Allow to use 0 in the cgroup match, the kernel rejects with -EINVAL
   with no good reason. From Daniel Borkmann.

3) Select CONFIG_NF_NAT from the nf_tables NAT expression, this also
   resolves another NAT dependency with x_tables.

4) Use HAVE_JUMP_LABEL instead of CONFIG_JUMP_LABEL in the Netfilter hook
   code as elsewhere in the kernel to resolve toolchain problems, from
   Zhouyi Zhou.

5) Use iptunnel_handle_offloads() to set up tunnel encapsulation
   depending on the offload capabilities, reported by Alex Gartrell
   patch from Julian Anastasov.

6) Fix wrong family when registering the ip_vs_local_reply6() hook,
   also from Julian.

7) Select the NF_LOG_* symbols from NETFILTER_XT_TARGET_LOG. Rafał
   Miłecki reported that when jumping from 3.16 to 3.17-rc, his log
   target is not selected anymore due to changes in the previous
   development cycle to accomodate the full logging support for
   nf_tables.
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: ipv6: fib: don't sleep inside atomic lock</title>
<updated>2014-08-22T17:54:49+00:00</updated>
<author>
<name>Benjamin Block</name>
<email>bebl@mageta.org</email>
</author>
<published>2014-08-21T17:37:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=793c3b4000a1ef611ae7e5c89bd2a9c6b776cb5e'/>
<id>793c3b4000a1ef611ae7e5c89bd2a9c6b776cb5e</id>
<content type='text'>
The function fib6_commit_metrics() allocates a piece of memory in mode
GFP_KERNEL while holding an atomic lock from higher up in the stack, in
the function __ip6_ins_rt(). This produces the following BUG:

&gt; BUG: sleeping function called from invalid context at mm/slub.c:1250
&gt; in_atomic(): 1, irqs_disabled(): 0, pid: 2909, name: dhcpcd
&gt; 2 locks held by dhcpcd/2909:
&gt;  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff81978e67&gt;] rtnl_lock+0x17/0x20
&gt;  #1:  (&amp;tb-&gt;tb6_lock){++--+.}, at: [&lt;ffffffff81a6951a&gt;] ip6_route_add+0x65a/0x800
&gt; CPU: 1 PID: 2909 Comm: dhcpcd Not tainted 3.17.0-rc1 #1
&gt; Hardware name: ASUS All Series/Q87T, BIOS 0216 10/16/2013
&gt;  0000000000000008 ffff8800c8f13858 ffffffff81af135a 0000000000000000
&gt;  ffff880212202430 ffff8800c8f13878 ffffffff810f8d3a ffff880212202c98
&gt;  0000000000000010 ffff8800c8f138c8 ffffffff8121ad0e 0000000000000001
&gt; Call Trace:
&gt;  [&lt;ffffffff81af135a&gt;] dump_stack+0x4e/0x68
&gt;  [&lt;ffffffff810f8d3a&gt;] __might_sleep+0x10a/0x120
&gt;  [&lt;ffffffff8121ad0e&gt;] kmem_cache_alloc_trace+0x4e/0x190
&gt;  [&lt;ffffffff81a6bcd6&gt;] ? fib6_commit_metrics+0x66/0x110
&gt;  [&lt;ffffffff81a6bcd6&gt;] fib6_commit_metrics+0x66/0x110
&gt;  [&lt;ffffffff81a6cbf3&gt;] fib6_add+0x883/0xa80
&gt;  [&lt;ffffffff81a6951a&gt;] ? ip6_route_add+0x65a/0x800
&gt;  [&lt;ffffffff81a69535&gt;] ip6_route_add+0x675/0x800
&gt;  [&lt;ffffffff81a68f2a&gt;] ? ip6_route_add+0x6a/0x800
&gt;  [&lt;ffffffff81a6990c&gt;] inet6_rtm_newroute+0x5c/0x80
&gt;  [&lt;ffffffff8197cf01&gt;] rtnetlink_rcv_msg+0x211/0x260
&gt;  [&lt;ffffffff81978e67&gt;] ? rtnl_lock+0x17/0x20
&gt;  [&lt;ffffffff81119708&gt;] ? lock_release_holdtime+0x28/0x180
&gt;  [&lt;ffffffff81978e67&gt;] ? rtnl_lock+0x17/0x20
&gt;  [&lt;ffffffff8197ccf0&gt;] ? __rtnl_unlock+0x20/0x20
&gt;  [&lt;ffffffff819a989e&gt;] netlink_rcv_skb+0x6e/0xd0
&gt;  [&lt;ffffffff81978ee5&gt;] rtnetlink_rcv+0x25/0x40
&gt;  [&lt;ffffffff819a8e59&gt;] netlink_unicast+0xd9/0x180
&gt;  [&lt;ffffffff819a9600&gt;] netlink_sendmsg+0x700/0x770
&gt;  [&lt;ffffffff81103735&gt;] ? local_clock+0x25/0x30
&gt;  [&lt;ffffffff8194e83c&gt;] sock_sendmsg+0x6c/0x90
&gt;  [&lt;ffffffff811f98e3&gt;] ? might_fault+0xa3/0xb0
&gt;  [&lt;ffffffff8195ca6d&gt;] ? verify_iovec+0x7d/0xf0
&gt;  [&lt;ffffffff8194ec3e&gt;] ___sys_sendmsg+0x37e/0x3b0
&gt;  [&lt;ffffffff8111ef15&gt;] ? trace_hardirqs_on_caller+0x185/0x220
&gt;  [&lt;ffffffff81af979e&gt;] ? mutex_unlock+0xe/0x10
&gt;  [&lt;ffffffff819a55ec&gt;] ? netlink_insert+0xbc/0xe0
&gt;  [&lt;ffffffff819a65e5&gt;] ? netlink_autobind.isra.30+0x125/0x150
&gt;  [&lt;ffffffff819a6520&gt;] ? netlink_autobind.isra.30+0x60/0x150
&gt;  [&lt;ffffffff819a84f9&gt;] ? netlink_bind+0x159/0x230
&gt;  [&lt;ffffffff811f989a&gt;] ? might_fault+0x5a/0xb0
&gt;  [&lt;ffffffff8194f25e&gt;] ? SYSC_bind+0x7e/0xd0
&gt;  [&lt;ffffffff8194f8cd&gt;] __sys_sendmsg+0x4d/0x80
&gt;  [&lt;ffffffff8194f912&gt;] SyS_sendmsg+0x12/0x20
&gt;  [&lt;ffffffff81afc692&gt;] system_call_fastpath+0x16/0x1b

Fixing this by replacing the mode GFP_KERNEL with GFP_ATOMIC.

Signed-off-by: Benjamin Block &lt;bebl@mageta.org&gt;
Acked-by: David Rientjes &lt;rientjes@google.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The function fib6_commit_metrics() allocates a piece of memory in mode
GFP_KERNEL while holding an atomic lock from higher up in the stack, in
the function __ip6_ins_rt(). This produces the following BUG:

&gt; BUG: sleeping function called from invalid context at mm/slub.c:1250
&gt; in_atomic(): 1, irqs_disabled(): 0, pid: 2909, name: dhcpcd
&gt; 2 locks held by dhcpcd/2909:
&gt;  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff81978e67&gt;] rtnl_lock+0x17/0x20
&gt;  #1:  (&amp;tb-&gt;tb6_lock){++--+.}, at: [&lt;ffffffff81a6951a&gt;] ip6_route_add+0x65a/0x800
&gt; CPU: 1 PID: 2909 Comm: dhcpcd Not tainted 3.17.0-rc1 #1
&gt; Hardware name: ASUS All Series/Q87T, BIOS 0216 10/16/2013
&gt;  0000000000000008 ffff8800c8f13858 ffffffff81af135a 0000000000000000
&gt;  ffff880212202430 ffff8800c8f13878 ffffffff810f8d3a ffff880212202c98
&gt;  0000000000000010 ffff8800c8f138c8 ffffffff8121ad0e 0000000000000001
&gt; Call Trace:
&gt;  [&lt;ffffffff81af135a&gt;] dump_stack+0x4e/0x68
&gt;  [&lt;ffffffff810f8d3a&gt;] __might_sleep+0x10a/0x120
&gt;  [&lt;ffffffff8121ad0e&gt;] kmem_cache_alloc_trace+0x4e/0x190
&gt;  [&lt;ffffffff81a6bcd6&gt;] ? fib6_commit_metrics+0x66/0x110
&gt;  [&lt;ffffffff81a6bcd6&gt;] fib6_commit_metrics+0x66/0x110
&gt;  [&lt;ffffffff81a6cbf3&gt;] fib6_add+0x883/0xa80
&gt;  [&lt;ffffffff81a6951a&gt;] ? ip6_route_add+0x65a/0x800
&gt;  [&lt;ffffffff81a69535&gt;] ip6_route_add+0x675/0x800
&gt;  [&lt;ffffffff81a68f2a&gt;] ? ip6_route_add+0x6a/0x800
&gt;  [&lt;ffffffff81a6990c&gt;] inet6_rtm_newroute+0x5c/0x80
&gt;  [&lt;ffffffff8197cf01&gt;] rtnetlink_rcv_msg+0x211/0x260
&gt;  [&lt;ffffffff81978e67&gt;] ? rtnl_lock+0x17/0x20
&gt;  [&lt;ffffffff81119708&gt;] ? lock_release_holdtime+0x28/0x180
&gt;  [&lt;ffffffff81978e67&gt;] ? rtnl_lock+0x17/0x20
&gt;  [&lt;ffffffff8197ccf0&gt;] ? __rtnl_unlock+0x20/0x20
&gt;  [&lt;ffffffff819a989e&gt;] netlink_rcv_skb+0x6e/0xd0
&gt;  [&lt;ffffffff81978ee5&gt;] rtnetlink_rcv+0x25/0x40
&gt;  [&lt;ffffffff819a8e59&gt;] netlink_unicast+0xd9/0x180
&gt;  [&lt;ffffffff819a9600&gt;] netlink_sendmsg+0x700/0x770
&gt;  [&lt;ffffffff81103735&gt;] ? local_clock+0x25/0x30
&gt;  [&lt;ffffffff8194e83c&gt;] sock_sendmsg+0x6c/0x90
&gt;  [&lt;ffffffff811f98e3&gt;] ? might_fault+0xa3/0xb0
&gt;  [&lt;ffffffff8195ca6d&gt;] ? verify_iovec+0x7d/0xf0
&gt;  [&lt;ffffffff8194ec3e&gt;] ___sys_sendmsg+0x37e/0x3b0
&gt;  [&lt;ffffffff8111ef15&gt;] ? trace_hardirqs_on_caller+0x185/0x220
&gt;  [&lt;ffffffff81af979e&gt;] ? mutex_unlock+0xe/0x10
&gt;  [&lt;ffffffff819a55ec&gt;] ? netlink_insert+0xbc/0xe0
&gt;  [&lt;ffffffff819a65e5&gt;] ? netlink_autobind.isra.30+0x125/0x150
&gt;  [&lt;ffffffff819a6520&gt;] ? netlink_autobind.isra.30+0x60/0x150
&gt;  [&lt;ffffffff819a84f9&gt;] ? netlink_bind+0x159/0x230
&gt;  [&lt;ffffffff811f989a&gt;] ? might_fault+0x5a/0xb0
&gt;  [&lt;ffffffff8194f25e&gt;] ? SYSC_bind+0x7e/0xd0
&gt;  [&lt;ffffffff8194f8cd&gt;] __sys_sendmsg+0x4d/0x80
&gt;  [&lt;ffffffff8194f912&gt;] SyS_sendmsg+0x12/0x20
&gt;  [&lt;ffffffff81afc692&gt;] system_call_fastpath+0x16/0x1b

Fixing this by replacing the mode GFP_KERNEL with GFP_ATOMIC.

Signed-off-by: Benjamin Block &lt;bebl@mageta.org&gt;
Acked-by: David Rientjes &lt;rientjes@google.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: move NAT Kconfig switches out of the iptables scope</title>
<updated>2014-08-18T19:55:54+00:00</updated>
<author>
<name>Pablo Neira Ayuso</name>
<email>pablo@netfilter.org</email>
</author>
<published>2014-08-11T16:21:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8993cf8edf42527119186b558766539243b791a5'/>
<id>8993cf8edf42527119186b558766539243b791a5</id>
<content type='text'>
Currently, the NAT configs depend on iptables and ip6tables. However,
users should be capable of enabling NAT for nft without having to
switch on iptables.

Fix this by adding new specific IP_NF_NAT and IP6_NF_NAT config
switches for iptables and ip6tables NAT support. I have also moved
the original NF_NAT_IPV4 and NF_NAT_IPV6 configs out of the scope
of iptables to make them independent of it.

This patch also adds NETFILTER_XT_NAT which selects the xt_nat
combo that provides snat/dnat for iptables. We cannot use NF_NAT
anymore since nf_tables can select this.

Reported-by: Matteo Croce &lt;technoboy85@gmail.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, the NAT configs depend on iptables and ip6tables. However,
users should be capable of enabling NAT for nft without having to
switch on iptables.

Fix this by adding new specific IP_NF_NAT and IP6_NF_NAT config
switches for iptables and ip6tables NAT support. I have also moved
the original NF_NAT_IPV4 and NF_NAT_IPV6 configs out of the scope
of iptables to make them independent of it.

This patch also adds NETFILTER_XT_NAT which selects the xt_nat
combo that provides snat/dnat for iptables. We cannot use NF_NAT
anymore since nf_tables can select this.

Reported-by: Matteo Croce &lt;technoboy85@gmail.com&gt;
Signed-off-by: Pablo Neira Ayuso &lt;pablo@netfilter.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
