<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net/ipv6, branch v3.13</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net/ipv6?h=v3.13</id>
<link rel='self' href='https://git.amat.us/linux/atom/net/ipv6?h=v3.13'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-01-18T02:10:01Z</updated>
<entry>
<title>ipv6: simplify detection of first operational link-local address on interface</title>
<updated>2014-01-18T02:10:01Z</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2014-01-16T19:13:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=11ffff752c6a5adc86f7dd397b2f75af8f917c51'/>
<id>urn:sha1:11ffff752c6a5adc86f7dd397b2f75af8f917c51</id>
<content type='text'>
In commit 1ec047eb4751e3 ("ipv6: introduce per-interface counter for
dad-completed ipv6 addresses") I build the detection of the first
operational link-local address much to complex. Additionally this code
now has a race condition.

Replace it with a much simpler variant, which just scans the address
list when duplicate address detection completes, to check if this is
the first valid link local address and send RS and MLD reports then.

Fixes: 1ec047eb4751e3 ("ipv6: introduce per-interface counter for dad-completed ipv6 addresses")
Reported-by: Jiri Pirko &lt;jiri@resnulli.us&gt;
Cc: Flavio Leitner &lt;fbl@redhat.com&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Acked-by: Flavio Leitner &lt;fbl@redhat.com&gt;
Acked-by: Jiri Pirko &lt;jiri@resnulli.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: avoid reference counter overflows on fib_rules in multicast forwarding</title>
<updated>2014-01-15T01:37:25Z</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2014-01-13T01:45:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=95f4a45de1a0f172b35451fc52283290adb21f6e'/>
<id>urn:sha1:95f4a45de1a0f172b35451fc52283290adb21f6e</id>
<content type='text'>
Bob Falken reported that after 4G packets, multicast forwarding stopped
working. This was because of a rule reference counter overflow which
freed the rule as soon as the overflow happend.

This patch solves this by adding the FIB_LOOKUP_NOREF flag to
fib_rules_lookup calls. This is safe even from non-rcu locked sections
as in this case the flag only implies not taking a reference to the rule,
which we don't need at all.

Rules only hold references to the namespace, which are guaranteed to be
available during the call of the non-rcu protected function reg_vif_xmit
because of the interface reference which itself holds a reference to
the net namespace.

Fixes: f0ad0860d01e47 ("ipv4: ipmr: support multiple tables")
Fixes: d1db275dd3f6e4 ("ipv6: ip6mr: support multiple tables")
Reported-by: Bob Falken &lt;NetFestivalHaveFun@gmx.com&gt;
Cc: Patrick McHardy &lt;kaber@trash.net&gt;
Cc: Thomas Graf &lt;tgraf@suug.ch&gt;
Cc: Julian Anastasov &lt;ja@ssi.bg&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: add link-local, sit and loopback address with INFINITY_LIFE_TIME</title>
<updated>2014-01-10T04:07:47Z</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2014-01-08T14:43:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=07edd741c838e376933b445bbf2692f83b6774e6'/>
<id>urn:sha1:07edd741c838e376933b445bbf2692f83b6774e6</id>
<content type='text'>
In the past the IFA_PERMANENT flag indicated, that the valid and preferred
lifetime where ignored. Since change fad8da3e085ddf ("ipv6 addrconf: fix
preferred lifetime state-changing behavior while valid_lft is infinity")
we honour at least the preferred lifetime on those addresses. As such
the valid lifetime gets recalculated and updated to 0.

If loopback address is added manually this problem does not occur.
Also if NetworkManager manages IPv6, those addresses will get added via
inet6_rtm_newaddr and thus will have a correct lifetime, too.

Reported-by: François-Xavier Le Bail &lt;fx.lebail@yahoo.com&gt;
Reported-by: Damien Wyart &lt;damien.wyart@gmail.com&gt;
Fixes: fad8da3e085ddf ("ipv6 addrconf: fix preferred lifetime state-changing behavior while valid_lft is infinity")
Cc: Yasushi Asano &lt;yasushi.asano@jp.fujitsu.com&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: pcpu_tstats.syncp should be initialised in ip6_vti.c</title>
<updated>2014-01-07T19:12:46Z</updated>
<author>
<name>Li RongQing</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2014-01-07T07:39:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=657e5d19657542631461e72fdc375b1e83e72070'/>
<id>urn:sha1:657e5d19657542631461e72fdc375b1e83e72070</id>
<content type='text'>
initialise pcpu_tstats.syncp to kill the calltrace
[   11.973950] Call Trace:
[   11.973950]  [&lt;819bbaff&gt;] dump_stack+0x48/0x60
[   11.973950]  [&lt;819bbaff&gt;] dump_stack+0x48/0x60
[   11.973950]  [&lt;81078dcf&gt;] __lock_acquire.isra.22+0x1bf/0xc10
[   11.973950]  [&lt;81078dcf&gt;] __lock_acquire.isra.22+0x1bf/0xc10
[   11.973950]  [&lt;81079fa7&gt;] lock_acquire+0x77/0xa0
[   11.973950]  [&lt;81079fa7&gt;] lock_acquire+0x77/0xa0
[   11.973950]  [&lt;817ca7ab&gt;] ? dev_get_stats+0xcb/0x130
[   11.973950]  [&lt;817ca7ab&gt;] ? dev_get_stats+0xcb/0x130
[   11.973950]  [&lt;8183862d&gt;] ip_tunnel_get_stats64+0x6d/0x230
[   11.973950]  [&lt;8183862d&gt;] ip_tunnel_get_stats64+0x6d/0x230
[   11.973950]  [&lt;817ca7ab&gt;] ? dev_get_stats+0xcb/0x130
[   11.973950]  [&lt;817ca7ab&gt;] ? dev_get_stats+0xcb/0x130
[   11.973950]  [&lt;811cf8c1&gt;] ? __nla_reserve+0x21/0xd0
[   11.973950]  [&lt;811cf8c1&gt;] ? __nla_reserve+0x21/0xd0
[   11.973950]  [&lt;817ca7ab&gt;] dev_get_stats+0xcb/0x130
[   11.973950]  [&lt;817ca7ab&gt;] dev_get_stats+0xcb/0x130
[   11.973950]  [&lt;817d5409&gt;] rtnl_fill_ifinfo+0x569/0xe20
[   11.973950]  [&lt;817d5409&gt;] rtnl_fill_ifinfo+0x569/0xe20
[   11.973950]  [&lt;810352e0&gt;] ? kvm_clock_read+0x20/0x30
[   11.973950]  [&lt;810352e0&gt;] ? kvm_clock_read+0x20/0x30
[   11.973950]  [&lt;81008e38&gt;] ? sched_clock+0x8/0x10
[   11.973950]  [&lt;81008e38&gt;] ? sched_clock+0x8/0x10
[   11.973950]  [&lt;8106ba45&gt;] ? sched_clock_local+0x25/0x170
[   11.973950]  [&lt;8106ba45&gt;] ? sched_clock_local+0x25/0x170
[   11.973950]  [&lt;810da6bd&gt;] ? __kmalloc+0x3d/0x90
[   11.973950]  [&lt;810da6bd&gt;] ? __kmalloc+0x3d/0x90
[   11.973950]  [&lt;817b8c10&gt;] ? __kmalloc_reserve.isra.41+0x20/0x70
[   11.973950]  [&lt;817b8c10&gt;] ? __kmalloc_reserve.isra.41+0x20/0x70
[   11.973950]  [&lt;810da81a&gt;] ? slob_alloc_node+0x2a/0x60
[   11.973950]  [&lt;810da81a&gt;] ? slob_alloc_node+0x2a/0x60
[   11.973950]  [&lt;817b919a&gt;] ? __alloc_skb+0x6a/0x2b0
[   11.973950]  [&lt;817b919a&gt;] ? __alloc_skb+0x6a/0x2b0
[   11.973950]  [&lt;817d8795&gt;] rtmsg_ifinfo+0x65/0xe0
[   11.973950]  [&lt;817d8795&gt;] rtmsg_ifinfo+0x65/0xe0
[   11.973950]  [&lt;817cbd31&gt;] register_netdevice+0x531/0x5a0
[   11.973950]  [&lt;817cbd31&gt;] register_netdevice+0x531/0x5a0
[   11.973950]  [&lt;81892b87&gt;] ? ip6_tnl_get_cap+0x27/0x90
[   11.973950]  [&lt;81892b87&gt;] ? ip6_tnl_get_cap+0x27/0x90
[   11.973950]  [&lt;817cbdb6&gt;] register_netdev+0x16/0x30
[   11.973950]  [&lt;817cbdb6&gt;] register_netdev+0x16/0x30
[   11.973950]  [&lt;81f574a6&gt;] vti6_init_net+0x1c4/0x1d4
[   11.973950]  [&lt;81f574a6&gt;] vti6_init_net+0x1c4/0x1d4
[   11.973950]  [&lt;81f573af&gt;] ? vti6_init_net+0xcd/0x1d4
[   11.973950]  [&lt;81f573af&gt;] ? vti6_init_net+0xcd/0x1d4
[   11.973950]  [&lt;817c16df&gt;] ops_init.constprop.11+0x17f/0x1c0
[   11.973950]  [&lt;817c16df&gt;] ops_init.constprop.11+0x17f/0x1c0
[   11.973950]  [&lt;817c1779&gt;] register_pernet_operations.isra.9+0x59/0x90
[   11.973950]  [&lt;817c1779&gt;] register_pernet_operations.isra.9+0x59/0x90
[   11.973950]  [&lt;817c18d1&gt;] register_pernet_device+0x21/0x60
[   11.973950]  [&lt;817c18d1&gt;] register_pernet_device+0x21/0x60
[   11.973950]  [&lt;81f574b6&gt;] ? vti6_init_net+0x1d4/0x1d4
[   11.973950]  [&lt;81f574b6&gt;] ? vti6_init_net+0x1d4/0x1d4
[   11.973950]  [&lt;81f574c7&gt;] vti6_tunnel_init+0x11/0x68
[   11.973950]  [&lt;81f574c7&gt;] vti6_tunnel_init+0x11/0x68
[   11.973950]  [&lt;81f572a1&gt;] ? mip6_init+0x73/0xb4
[   11.973950]  [&lt;81f572a1&gt;] ? mip6_init+0x73/0xb4
[   11.973950]  [&lt;81f0cba4&gt;] do_one_initcall+0xbb/0x15b
[   11.973950]  [&lt;81f0cba4&gt;] do_one_initcall+0xbb/0x15b
[   11.973950]  [&lt;811a00d8&gt;] ? sha_transform+0x528/0x1150
[   11.973950]  [&lt;811a00d8&gt;] ? sha_transform+0x528/0x1150
[   11.973950]  [&lt;81f0c544&gt;] ? repair_env_string+0x12/0x51
[   11.973950]  [&lt;81f0c544&gt;] ? repair_env_string+0x12/0x51
[   11.973950]  [&lt;8105c30d&gt;] ? parse_args+0x2ad/0x440
[   11.973950]  [&lt;8105c30d&gt;] ? parse_args+0x2ad/0x440
[   11.973950]  [&lt;810546be&gt;] ? __usermodehelper_set_disable_depth+0x3e/0x50
[   11.973950]  [&lt;810546be&gt;] ? __usermodehelper_set_disable_depth+0x3e/0x50
[   11.973950]  [&lt;81f0cd27&gt;] kernel_init_freeable+0xe3/0x182
[   11.973950]  [&lt;81f0cd27&gt;] kernel_init_freeable+0xe3/0x182
[   11.973950]  [&lt;81f0c532&gt;] ? do_early_param+0x7a/0x7a
[   11.973950]  [&lt;81f0c532&gt;] ? do_early_param+0x7a/0x7a
[   11.973950]  [&lt;819b5b1b&gt;] kernel_init+0xb/0x100
[   11.973950]  [&lt;819b5b1b&gt;] kernel_init+0xb/0x100
[   11.973950]  [&lt;819cebf7&gt;] ret_from_kernel_thread+0x1b/0x28
[   11.973950]  [&lt;819cebf7&gt;] ret_from_kernel_thread+0x1b/0x28
[   11.973950]  [&lt;819b5b10&gt;] ? rest_init+0xc0/0xc0
[   11.973950]  [&lt;819b5b10&gt;] ? rest_init+0xc0/0xc0

Before 469bdcefdc ("ipv6: fix the use of pcpu_tstats in ip6_vti.c"),
the pcpu_tstats.syncp is not used to pretect the 64bit elements of
pcpu_tstats, so not appear this calltrace.

Reported-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: don't install anycast address for /128 addresses on routers</title>
<updated>2014-01-06T21:32:43Z</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2014-01-06T16:53:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=88ad31491e21f5dec347911d9804c673af414a09'/>
<id>urn:sha1:88ad31491e21f5dec347911d9804c673af414a09</id>
<content type='text'>
It does not make sense to create an anycast address for an /128-prefix.
Suppress it.

As 32019e651c6fce ("ipv6: Do not leave router anycast address for /127
prefixes.") shows we also may not leave them, because we could accidentally
remove an anycast address the user has allocated or got added via another
prefix.

Cc: François-Xavier Le Bail &lt;fx.lebail@yahoo.com&gt;
Cc: Thomas Haller &lt;thaller@redhat.com&gt;
Cc: Jiri Pirko &lt;jiri@resnulli.us&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: fix the use of pcpu_tstats in ip6_vti.c</title>
<updated>2014-01-03T00:37:21Z</updated>
<author>
<name>Li RongQing</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2014-01-02T06:24:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=469bdcefdc47a69028029e792ff1e80680c867b9'/>
<id>urn:sha1:469bdcefdc47a69028029e792ff1e80680c867b9</id>
<content type='text'>
when read/write the 64bit data, the correct lock should be hold.
and we can use the generic vti6_get_stats to return stats, and
not define a new one in ip6_vti.c

Fixes: 87b6d218f3adb ("tunnel: implement 64 bits statistics")
Cc: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Cc: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: fix the use of pcpu_tstats in ip6_tunnel</title>
<updated>2014-01-03T00:37:21Z</updated>
<author>
<name>Li RongQing</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2014-01-02T05:20:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=abb6013cca147ad940b0e9fee260d2d9e93b7018'/>
<id>urn:sha1:abb6013cca147ad940b0e9fee260d2d9e93b7018</id>
<content type='text'>
when read/write the 64bit data, the correct lock should be hold.

Fixes: 87b6d218f3adb ("tunnel: implement 64 bits statistics")

Cc: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Cc: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6 addrconf: fix preferred lifetime state-changing behavior while valid_lft is infinity</title>
<updated>2014-01-03T00:34:40Z</updated>
<author>
<name>Yasushi Asano</name>
<email>yasushi.asano@jp.fujitsu.com</email>
</author>
<published>2013-12-31T03:04:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fad8da3e085ddf5e661090033287f1a5d62858fc'/>
<id>urn:sha1:fad8da3e085ddf5e661090033287f1a5d62858fc</id>
<content type='text'>
Fixed a problem with setting the lifetime of an IPv6
address. When setting preferred_lft to a value not zero or
infinity, while valid_lft is infinity(0xffffffff) preferred
lifetime is set to forever and does not update. Therefore
preferred lifetime never becomes deprecated. valid lifetime
and preferred lifetime should be set independently, even if
valid lifetime is infinity, preferred lifetime must expire
correctly (meaning it must eventually become deprecated)

Signed-off-by: Yasushi Asano &lt;yasushi.asano@jp.fujitsu.com&gt;
Acked-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: fix the use of pcpu_tstats in sit</title>
<updated>2014-01-02T03:48:59Z</updated>
<author>
<name>Li RongQing</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2014-01-02T00:49:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c3ac17cd6af2687d5881184edd310a5f9c4baa98'/>
<id>urn:sha1:c3ac17cd6af2687d5881184edd310a5f9c4baa98</id>
<content type='text'>
when read/write the 64bit data, the correct lock should be hold.

Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: release dst properly in ipip6_tunnel_xmit</title>
<updated>2013-12-27T18:14:40Z</updated>
<author>
<name>Li RongQing</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2013-12-20T09:20:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6a9eadccff2926e392173a989042f14c867cffbf'/>
<id>urn:sha1:6a9eadccff2926e392173a989042f14c867cffbf</id>
<content type='text'>
if a dst is not attached to anywhere, it should be released before
exit ipip6_tunnel_xmit, otherwise cause dst memory leakage.

Fixes: 61c1db7fae21 ("ipv6: sit: add GSO/TSO support")
Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
