<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/ipv4, branch v3.6-rc7</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>net: change return values from -EACCES to -EPERM</title>
<updated>2012-09-21T17:58:08+00:00</updated>
<author>
<name>Zhao Hongjiang</name>
<email>zhaohongjiang@huawei.com</email>
</author>
<published>2012-09-20T22:37:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bf5b30b8a4416de04f1ac1196281ddb318669464'/>
<id>bf5b30b8a4416de04f1ac1196281ddb318669464</id>
<content type='text'>
Change return value from -EACCES to -EPERM when the permission check fails.

Signed-off-by: Zhao Hongjiang &lt;zhaohongjiang@huawei.com&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>
Change return value from -EACCES to -EPERM when the permission check fails.

Signed-off-by: Zhao Hongjiang &lt;zhaohongjiang@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: restore rcv_wscale in a repair mode (v2)</title>
<updated>2012-09-20T21:49:58+00:00</updated>
<author>
<name>Andrey Vagin</name>
<email>avagin@openvz.org</email>
</author>
<published>2012-09-19T09:40:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bc26ccd8fc756749de95606d28314efd0ce5aec3'/>
<id>bc26ccd8fc756749de95606d28314efd0ce5aec3</id>
<content type='text'>
rcv_wscale is a symetric parameter with snd_wscale.

Both this parameters are set on a connection handshake.

Without this value a remote window size can not be interpreted correctly,
because a value from a packet should be shifted on rcv_wscale.

And one more thing is that wscale_ok should be set too.

This patch doesn't break a backward compatibility.
If someone uses it in a old scheme, a rcv window
will be restored with the same bug (rcv_wscale = 0).

v2: Save backward compatibility on big-endian system. Before
    the first two bytes were snd_wscale and the second two bytes were
    rcv_wscale. Now snd_wscale is opt_val &amp; 0xFFFF and rcv_wscale &gt;&gt; 16.
    This approach is independent on byte ordering.

Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Alexey Kuznetsov &lt;kuznet@ms2.inr.ac.ru&gt;
Cc: James Morris &lt;jmorris@namei.org&gt;
Cc: Hideaki YOSHIFUJI &lt;yoshfuji@linux-ipv6.org&gt;
Cc: Patrick McHardy &lt;kaber@trash.net&gt;
CC: Pavel Emelyanov &lt;xemul@parallels.com&gt;
Signed-off-by: Andrew Vagin &lt;avagin@openvz.org&gt;
Acked-by: Pavel Emelyanov &lt;xemul@parallels.com&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>
rcv_wscale is a symetric parameter with snd_wscale.

Both this parameters are set on a connection handshake.

Without this value a remote window size can not be interpreted correctly,
because a value from a packet should be shifted on rcv_wscale.

And one more thing is that wscale_ok should be set too.

This patch doesn't break a backward compatibility.
If someone uses it in a old scheme, a rcv window
will be restored with the same bug (rcv_wscale = 0).

v2: Save backward compatibility on big-endian system. Before
    the first two bytes were snd_wscale and the second two bytes were
    rcv_wscale. Now snd_wscale is opt_val &amp; 0xFFFF and rcv_wscale &gt;&gt; 16.
    This approach is independent on byte ordering.

Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Alexey Kuznetsov &lt;kuznet@ms2.inr.ac.ru&gt;
Cc: James Morris &lt;jmorris@namei.org&gt;
Cc: Hideaki YOSHIFUJI &lt;yoshfuji@linux-ipv6.org&gt;
Cc: Patrick McHardy &lt;kaber@trash.net&gt;
CC: Pavel Emelyanov &lt;xemul@parallels.com&gt;
Signed-off-by: Andrew Vagin &lt;avagin@openvz.org&gt;
Acked-by: Pavel Emelyanov &lt;xemul@parallels.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: flush DMA queue before sk_wait_data if rcv_wnd is zero</title>
<updated>2012-09-19T20:07:58+00:00</updated>
<author>
<name>Michal Kubeček</name>
<email>mkubecek@suse.cz</email>
</author>
<published>2012-09-14T04:59:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=15c041759bfcd9ab0a4e43f1c16e2644977d0467'/>
<id>15c041759bfcd9ab0a4e43f1c16e2644977d0467</id>
<content type='text'>
If recv() syscall is called for a TCP socket so that
  - IOAT DMA is used
  - MSG_WAITALL flag is used
  - requested length is bigger than sk_rcvbuf
  - enough data has already arrived to bring rcv_wnd to zero
then when tcp_recvmsg() gets to calling sk_wait_data(), receive
window can be still zero while sk_async_wait_queue exhausts
enough space to keep it zero. As this queue isn't cleaned until
the tcp_service_net_dma() call, sk_wait_data() cannot receive
any data and blocks forever.

If zero receive window and non-empty sk_async_wait_queue is
detected before calling sk_wait_data(), process the queue first.

Signed-off-by: Michal Kubecek &lt;mkubecek@suse.cz&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 recv() syscall is called for a TCP socket so that
  - IOAT DMA is used
  - MSG_WAITALL flag is used
  - requested length is bigger than sk_rcvbuf
  - enough data has already arrived to bring rcv_wnd to zero
then when tcp_recvmsg() gets to calling sk_wait_data(), receive
window can be still zero while sk_async_wait_queue exhausts
enough space to keep it zero. As this queue isn't cleaned until
the tcp_service_net_dma() call, sk_wait_data() cannot receive
any data and blocks forever.

If zero receive window and non-empty sk_async_wait_queue is
detected before calling sk_wait_data(), process the queue first.

Signed-off-by: Michal Kubecek &lt;mkubecek@suse.cz&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: fix regression in urgent data handling</title>
<updated>2012-09-18T20:26:27+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-09-17T12:51:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1d57f19539c074105791da6384a8ad674bba8037'/>
<id>1d57f19539c074105791da6384a8ad674bba8037</id>
<content type='text'>
Stephan Springl found that commit 1402d366019fed "tcp: introduce
tcp_try_coalesce" introduced a regression for rlogin

It turns out problem comes from TCP urgent data handling and
a change in behavior in input path.

rlogin sends two one-byte packets with URG ptr set, and when next data
frame is coalesced, we lack sk_data_ready() calls to wakeup consumer.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Stephan Springl &lt;springl-k@lar.bfw.de&gt;
Cc: Alexander Duyck &lt;alexander.h.duyck@intel.com&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>
Stephan Springl found that commit 1402d366019fed "tcp: introduce
tcp_try_coalesce" introduced a regression for rlogin

It turns out problem comes from TCP urgent data handling and
a change in behavior in input path.

rlogin sends two one-byte packets with URG ptr set, and when next data
frame is coalesced, we lack sk_data_ready() calls to wakeup consumer.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Stephan Springl &lt;springl-k@lar.bfw.de&gt;
Cc: Alexander Duyck &lt;alexander.h.duyck@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netns: move net-&gt;ipv4.rt_genid to net-&gt;rt_genid</title>
<updated>2012-09-18T19:57:03+00:00</updated>
<author>
<name>Nicolas Dichtel</name>
<email>nicolas.dichtel@6wind.com</email>
</author>
<published>2012-09-10T22:09:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b42664f898c976247f7f609b8bb9c94d7475ca10'/>
<id>b42664f898c976247f7f609b8bb9c94d7475ca10</id>
<content type='text'>
This commit prepares the use of rt_genid by both IPv4 and IPv6.
Initialization is left in IPv4 part.

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&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>
This commit prepares the use of rt_genid by both IPv4 and IPv6.
Initialization is left in IPv4 part.

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: rt_cache_flush() cleanup</title>
<updated>2012-09-18T19:54:19+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-09-07T20:27:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2885da72966fcb89f48d554339d347fb02b5ea78'/>
<id>2885da72966fcb89f48d554339d347fb02b5ea78</id>
<content type='text'>
We dont use jhash anymore since route cache removal,
so we can get rid of get_random_bytes() calls for rt_genid
changes.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&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>
We dont use jhash anymore since route cache removal,
so we can get rid of get_random_bytes() calls for rt_genid
changes.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv4/route: arg delay is useless in rt_cache_flush()</title>
<updated>2012-09-18T19:44:34+00:00</updated>
<author>
<name>Nicolas Dichtel</name>
<email>nicolas.dichtel@6wind.com</email>
</author>
<published>2012-09-07T00:45:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bafa6d9d89072c1a18853afe9ee5de05c491c13a'/>
<id>bafa6d9d89072c1a18853afe9ee5de05c491c13a</id>
<content type='text'>
Since route cache deletion (89aef8921bfbac22f), delay is no
more used. Remove it.

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&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>
Since route cache deletion (89aef8921bfbac22f), delay is no
more used. Remove it.

Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>udp: increment UDP_MIB_INERRORS if copy failed</title>
<updated>2012-09-07T16:56:00+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-09-05T23:34:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=979402b16cde048ced4839e21cc49e0779352b80'/>
<id>979402b16cde048ced4839e21cc49e0779352b80</id>
<content type='text'>
In UDP recvmsg(), we miss an increase of UDP_MIB_INERRORS if the copy
of skb to userspace failed for whatever reason.

Reported-by: Shawn Bohrer &lt;sbohrer@rgmadvisors.com&gt;
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&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>
In UDP recvmsg(), we miss an increase of UDP_MIB_INERRORS if the copy
of skb to userspace failed for whatever reason.

Reported-by: Shawn Bohrer &lt;sbohrer@rgmadvisors.com&gt;
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://1984.lsi.us.es/nf</title>
<updated>2012-08-31T17:06:37+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2012-08-31T17:06:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0dcd5052c8543ef999bcd252cee50b7ae8111e89'/>
<id>0dcd5052c8543ef999bcd252cee50b7ae8111e89</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv4: must use rcu protection while calling fib_lookup</title>
<updated>2012-08-30T17:33:08+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-08-28T12:33:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c5ae7d41927dbd208c885d4794e30617ad6cdf12'/>
<id>c5ae7d41927dbd208c885d4794e30617ad6cdf12</id>
<content type='text'>
Following lockdep splat was reported by Pavel Roskin :

[ 1570.586223] ===============================
[ 1570.586225] [ INFO: suspicious RCU usage. ]
[ 1570.586228] 3.6.0-rc3-wl-main #98 Not tainted
[ 1570.586229] -------------------------------
[ 1570.586231] /home/proski/src/linux/net/ipv4/route.c:645 suspicious rcu_dereference_check() usage!
[ 1570.586233]
[ 1570.586233] other info that might help us debug this:
[ 1570.586233]
[ 1570.586236]
[ 1570.586236] rcu_scheduler_active = 1, debug_locks = 0
[ 1570.586238] 2 locks held by Chrome_IOThread/4467:
[ 1570.586240]  #0:  (slock-AF_INET){+.-...}, at: [&lt;ffffffff814f2c0c&gt;] release_sock+0x2c/0xa0
[ 1570.586253]  #1:  (fnhe_lock){+.-...}, at: [&lt;ffffffff815302fc&gt;] update_or_create_fnhe+0x2c/0x270
[ 1570.586260]
[ 1570.586260] stack backtrace:
[ 1570.586263] Pid: 4467, comm: Chrome_IOThread Not tainted 3.6.0-rc3-wl-main #98
[ 1570.586265] Call Trace:
[ 1570.586271]  [&lt;ffffffff810976ed&gt;] lockdep_rcu_suspicious+0xfd/0x130
[ 1570.586275]  [&lt;ffffffff8153042c&gt;] update_or_create_fnhe+0x15c/0x270
[ 1570.586278]  [&lt;ffffffff815305b3&gt;] __ip_rt_update_pmtu+0x73/0xb0
[ 1570.586282]  [&lt;ffffffff81530619&gt;] ip_rt_update_pmtu+0x29/0x90
[ 1570.586285]  [&lt;ffffffff815411dc&gt;] inet_csk_update_pmtu+0x2c/0x80
[ 1570.586290]  [&lt;ffffffff81558d1e&gt;] tcp_v4_mtu_reduced+0x2e/0xc0
[ 1570.586293]  [&lt;ffffffff81553bc4&gt;] tcp_release_cb+0xa4/0xb0
[ 1570.586296]  [&lt;ffffffff814f2c35&gt;] release_sock+0x55/0xa0
[ 1570.586300]  [&lt;ffffffff815442ef&gt;] tcp_sendmsg+0x4af/0xf50
[ 1570.586305]  [&lt;ffffffff8156fc60&gt;] inet_sendmsg+0x120/0x230
[ 1570.586308]  [&lt;ffffffff8156fb40&gt;] ? inet_sk_rebuild_header+0x40/0x40
[ 1570.586312]  [&lt;ffffffff814f4bdd&gt;] ? sock_update_classid+0xbd/0x3b0
[ 1570.586315]  [&lt;ffffffff814f4c50&gt;] ? sock_update_classid+0x130/0x3b0
[ 1570.586320]  [&lt;ffffffff814ec435&gt;] do_sock_write+0xc5/0xe0
[ 1570.586323]  [&lt;ffffffff814ec4a3&gt;] sock_aio_write+0x53/0x80
[ 1570.586328]  [&lt;ffffffff8114bc83&gt;] do_sync_write+0xa3/0xe0
[ 1570.586332]  [&lt;ffffffff8114c5a5&gt;] vfs_write+0x165/0x180
[ 1570.586335]  [&lt;ffffffff8114c805&gt;] sys_write+0x45/0x90
[ 1570.586340]  [&lt;ffffffff815d2722&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Pavel Roskin &lt;proski@gnu.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>
Following lockdep splat was reported by Pavel Roskin :

[ 1570.586223] ===============================
[ 1570.586225] [ INFO: suspicious RCU usage. ]
[ 1570.586228] 3.6.0-rc3-wl-main #98 Not tainted
[ 1570.586229] -------------------------------
[ 1570.586231] /home/proski/src/linux/net/ipv4/route.c:645 suspicious rcu_dereference_check() usage!
[ 1570.586233]
[ 1570.586233] other info that might help us debug this:
[ 1570.586233]
[ 1570.586236]
[ 1570.586236] rcu_scheduler_active = 1, debug_locks = 0
[ 1570.586238] 2 locks held by Chrome_IOThread/4467:
[ 1570.586240]  #0:  (slock-AF_INET){+.-...}, at: [&lt;ffffffff814f2c0c&gt;] release_sock+0x2c/0xa0
[ 1570.586253]  #1:  (fnhe_lock){+.-...}, at: [&lt;ffffffff815302fc&gt;] update_or_create_fnhe+0x2c/0x270
[ 1570.586260]
[ 1570.586260] stack backtrace:
[ 1570.586263] Pid: 4467, comm: Chrome_IOThread Not tainted 3.6.0-rc3-wl-main #98
[ 1570.586265] Call Trace:
[ 1570.586271]  [&lt;ffffffff810976ed&gt;] lockdep_rcu_suspicious+0xfd/0x130
[ 1570.586275]  [&lt;ffffffff8153042c&gt;] update_or_create_fnhe+0x15c/0x270
[ 1570.586278]  [&lt;ffffffff815305b3&gt;] __ip_rt_update_pmtu+0x73/0xb0
[ 1570.586282]  [&lt;ffffffff81530619&gt;] ip_rt_update_pmtu+0x29/0x90
[ 1570.586285]  [&lt;ffffffff815411dc&gt;] inet_csk_update_pmtu+0x2c/0x80
[ 1570.586290]  [&lt;ffffffff81558d1e&gt;] tcp_v4_mtu_reduced+0x2e/0xc0
[ 1570.586293]  [&lt;ffffffff81553bc4&gt;] tcp_release_cb+0xa4/0xb0
[ 1570.586296]  [&lt;ffffffff814f2c35&gt;] release_sock+0x55/0xa0
[ 1570.586300]  [&lt;ffffffff815442ef&gt;] tcp_sendmsg+0x4af/0xf50
[ 1570.586305]  [&lt;ffffffff8156fc60&gt;] inet_sendmsg+0x120/0x230
[ 1570.586308]  [&lt;ffffffff8156fb40&gt;] ? inet_sk_rebuild_header+0x40/0x40
[ 1570.586312]  [&lt;ffffffff814f4bdd&gt;] ? sock_update_classid+0xbd/0x3b0
[ 1570.586315]  [&lt;ffffffff814f4c50&gt;] ? sock_update_classid+0x130/0x3b0
[ 1570.586320]  [&lt;ffffffff814ec435&gt;] do_sock_write+0xc5/0xe0
[ 1570.586323]  [&lt;ffffffff814ec4a3&gt;] sock_aio_write+0x53/0x80
[ 1570.586328]  [&lt;ffffffff8114bc83&gt;] do_sync_write+0xa3/0xe0
[ 1570.586332]  [&lt;ffffffff8114c5a5&gt;] vfs_write+0x165/0x180
[ 1570.586335]  [&lt;ffffffff8114c805&gt;] sys_write+0x45/0x90
[ 1570.586340]  [&lt;ffffffff815d2722&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Pavel Roskin &lt;proski@gnu.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
