<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git, branch v4.1.9</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.1.9</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.1.9'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2015-09-29T17:26:41Z</updated>
<entry>
<title>Linux 4.1.9</title>
<updated>2015-09-29T17:26:41Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2015-09-29T17:26:41Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=cbc890891ddaf0240ad669dd9f0e48c599ff3d63'/>
<id>urn:sha1:cbc890891ddaf0240ad669dd9f0e48c599ff3d63</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cxl: Don't remove AFUs/vPHBs in cxl_reset</title>
<updated>2015-09-29T17:26:26Z</updated>
<author>
<name>Daniel Axtens</name>
<email>dja@axtens.net</email>
</author>
<published>2015-08-14T07:41:24Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=c3a0355bddf35457563a0d64e91f9dfca7c80280'/>
<id>urn:sha1:c3a0355bddf35457563a0d64e91f9dfca7c80280</id>
<content type='text'>
commit 4e1efb403c1c016ae831bd9988a7d2e5e0af41a0 upstream.

If the driver doesn't participate in EEH, the AFUs will be removed
by cxl_remove, which will be invoked by EEH.

If the driver does particpate in EEH, the vPHB needs to stick around
so that the it can particpate.

In both cases, we shouldn't remove the AFU/vPHB.

Reviewed-by: Cyril Bur &lt;cyrilbur@gmail.com&gt;
Signed-off-by: Daniel Axtens &lt;dja@axtens.net&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Reported-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Sudip Mukherjee &lt;sudip@vectorindia.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ipv4: off-by-one in continuation handling in /proc/net/route</title>
<updated>2015-09-29T17:26:26Z</updated>
<author>
<name>Andy Whitcroft</name>
<email>apw@canonical.com</email>
</author>
<published>2015-08-13T19:49:01Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e55ffaf457bcc8ec4e9d9f56f955971f834d65b3'/>
<id>urn:sha1:e55ffaf457bcc8ec4e9d9f56f955971f834d65b3</id>
<content type='text'>
[ Upstream commit 25b97c016b26039982daaa2c11d83979f93b71ab ]

When generating /proc/net/route we emit a header followed by a line for
each route.  When a short read is performed we will restart this process
based on the open file descriptor.  When calculating the start point we
fail to take into account that the 0th entry is the header.  This leads
us to skip the first entry when doing a continuation read.

This can be easily seen with the comparison below:

  while read l; do echo "$l"; done &lt;/proc/net/route &gt;A
  cat /proc/net/route &gt;B
  diff -bu A B | grep '^[+-]'

On my example machine I have approximatly 10KB of route output.  There we
see the very first non-title element is lost in the while read case,
and an entry around the 8K mark in the cat case:

  +wlan0 00000000 02021EAC 0003 0 0 400 00000000 0 0 0
  -tun1  00C0AC0A 00000000 0001 0 0 950 00C0FFFF 0 0 0

Fix up the off-by-one when reaquiring position on continuation.

Fixes: 8be33e955cb9 ("fib_trie: Fib walk rcu should take a tnode and key instead of a trie and a leaf")
BugLink: http://bugs.launchpad.net/bugs/1483440
Acked-by: Alexander Duyck &lt;alexander.h.duyck@redhat.com&gt;
Signed-off-by: Andy Whitcroft &lt;apw@canonical.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: Do not override PHY interface if already configured</title>
<updated>2015-09-29T17:26:26Z</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2015-08-08T19:58:57Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b21ee342590aa41e21aa0196bff5af592cc349d0'/>
<id>urn:sha1:b21ee342590aa41e21aa0196bff5af592cc349d0</id>
<content type='text'>
[ Upstream commit 211c504a444710b1d8ce3431ac19f2578602ca27 ]

In case we need to divert reads/writes using the slave MII bus, we may have
already fetched a valid PHY interface property from Device Tree, and that
mode is used by the PHY driver to make configuration decisions.

If we could not fetch the "phy-mode" property, we will assign p-&gt;phy_interface
to PHY_INTERFACE_MODE_NA, such that we can actually check for that condition as
to whether or not we should override the interface value.

Fixes: 19334920eaf7 ("net: dsa: Set valid phy interface type")
Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>inet: fix races with reqsk timers</title>
<updated>2015-09-29T17:26:26Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2015-08-10T16:09:13Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0c1122ae6107b01e50bb18fa40eb44e7fa492fbc'/>
<id>urn:sha1:0c1122ae6107b01e50bb18fa40eb44e7fa492fbc</id>
<content type='text'>
[ Upstream commit 2235f2ac75fd2501c251b0b699a9632e80239a6d ]

reqsk_queue_destroy() and reqsk_queue_unlink() should use
del_timer_sync() instead of del_timer() before calling reqsk_put(),
otherwise we could free a req still used by another cpu.

But before doing so, reqsk_queue_destroy() must release syn_wait_lock
spinlock or risk a dead lock, as reqsk_timer_handler() might
need to take this same spinlock from reqsk_queue_unlink() (called from
inet_csk_reqsk_queue_drop())

Fixes: fa76ce7328b2 ("inet: get rid of central tcp/dccp listener timer")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>inet: fix possible request socket leak</title>
<updated>2015-09-29T17:26:26Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2015-08-10T22:07:34Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d36f8434da8c333aa3837cf421a52f3835642759'/>
<id>urn:sha1:d36f8434da8c333aa3837cf421a52f3835642759</id>
<content type='text'>
[ Upstream commit 3257d8b12f954c462d29de6201664a846328a522 ]

In commit b357a364c57c9 ("inet: fix possible panic in
reqsk_queue_unlink()"), I missed fact that tcp_check_req()
can return the listener socket in one case, and that we must
release the request socket refcount or we leak it.

Tested:

 Following packetdrill test template shows the issue

0     socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
+0    setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
+0    bind(3, ..., ...) = 0
+0    listen(3, 1) = 0

+0    &lt; S 0:0(0) win 2920 &lt;mss 1460,sackOK,nop,nop&gt;
+0    &gt; S. 0:0(0) ack 1 &lt;mss 1460,nop,nop,sackOK&gt;
+.002 &lt; . 1:1(0) ack 21 win 2920
+0    &gt; R 21:21(0)

Fixes: b357a364c57c9 ("inet: fix possible panic in reqsk_queue_unlink()")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>netlink: make sure -EBUSY won't escape from netlink_insert</title>
<updated>2015-09-29T17:26:25Z</updated>
<author>
<name>Daniel Borkmann</name>
<email>daniel@iogearbox.net</email>
</author>
<published>2015-08-06T22:26:41Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d397617f757558a18f491e41b5f95a5bcf446d70'/>
<id>urn:sha1:d397617f757558a18f491e41b5f95a5bcf446d70</id>
<content type='text'>
[ Upstream commit 4e7c1330689e27556de407d3fdadc65ffff5eb12 ]

Linus reports the following deadlock on rtnl_mutex; triggered only
once so far (extract):

[12236.694209] NetworkManager  D 0000000000013b80     0  1047      1 0x00000000
[12236.694218]  ffff88003f902640 0000000000000000 ffffffff815d15a9 0000000000000018
[12236.694224]  ffff880119538000 ffff88003f902640 ffffffff81a8ff84 00000000ffffffff
[12236.694230]  ffffffff81a8ff88 ffff880119c47f00 ffffffff815d133a ffffffff81a8ff80
[12236.694235] Call Trace:
[12236.694250]  [&lt;ffffffff815d15a9&gt;] ? schedule_preempt_disabled+0x9/0x10
[12236.694257]  [&lt;ffffffff815d133a&gt;] ? schedule+0x2a/0x70
[12236.694263]  [&lt;ffffffff815d15a9&gt;] ? schedule_preempt_disabled+0x9/0x10
[12236.694271]  [&lt;ffffffff815d2c3f&gt;] ? __mutex_lock_slowpath+0x7f/0xf0
[12236.694280]  [&lt;ffffffff815d2cc6&gt;] ? mutex_lock+0x16/0x30
[12236.694291]  [&lt;ffffffff814f1f90&gt;] ? rtnetlink_rcv+0x10/0x30
[12236.694299]  [&lt;ffffffff8150ce3b&gt;] ? netlink_unicast+0xfb/0x180
[12236.694309]  [&lt;ffffffff814f5ad3&gt;] ? rtnl_getlink+0x113/0x190
[12236.694319]  [&lt;ffffffff814f202a&gt;] ? rtnetlink_rcv_msg+0x7a/0x210
[12236.694331]  [&lt;ffffffff8124565c&gt;] ? sock_has_perm+0x5c/0x70
[12236.694339]  [&lt;ffffffff814f1fb0&gt;] ? rtnetlink_rcv+0x30/0x30
[12236.694346]  [&lt;ffffffff8150d62c&gt;] ? netlink_rcv_skb+0x9c/0xc0
[12236.694354]  [&lt;ffffffff814f1f9f&gt;] ? rtnetlink_rcv+0x1f/0x30
[12236.694360]  [&lt;ffffffff8150ce3b&gt;] ? netlink_unicast+0xfb/0x180
[12236.694367]  [&lt;ffffffff8150d344&gt;] ? netlink_sendmsg+0x484/0x5d0
[12236.694376]  [&lt;ffffffff810a236f&gt;] ? __wake_up+0x2f/0x50
[12236.694387]  [&lt;ffffffff814cad23&gt;] ? sock_sendmsg+0x33/0x40
[12236.694396]  [&lt;ffffffff814cb05e&gt;] ? ___sys_sendmsg+0x22e/0x240
[12236.694405]  [&lt;ffffffff814cab75&gt;] ? ___sys_recvmsg+0x135/0x1a0
[12236.694415]  [&lt;ffffffff811a9d12&gt;] ? eventfd_write+0x82/0x210
[12236.694423]  [&lt;ffffffff811a0f9e&gt;] ? fsnotify+0x32e/0x4c0
[12236.694429]  [&lt;ffffffff8108cb70&gt;] ? wake_up_q+0x60/0x60
[12236.694434]  [&lt;ffffffff814cba09&gt;] ? __sys_sendmsg+0x39/0x70
[12236.694440]  [&lt;ffffffff815d4797&gt;] ? entry_SYSCALL_64_fastpath+0x12/0x6a

It seems so far plausible that the recursive call into rtnetlink_rcv()
looks suspicious. One way, where this could trigger is that the senders
NETLINK_CB(skb).portid was wrongly 0 (which is rtnetlink socket), so
the rtnl_getlink() request's answer would be sent to the kernel instead
to the actual user process, thus grabbing rtnl_mutex() twice.

One theory would be that netlink_autobind() triggered via netlink_sendmsg()
internally overwrites the -EBUSY error to 0, but where it is wrongly
originating from __netlink_insert() instead. That would reset the
socket's portid to 0, which is then filled into NETLINK_CB(skb).portid
later on. As commit d470e3b483dc ("[NETLINK]: Fix two socket hashing bugs.")
also puts it, -EBUSY should not be propagated from netlink_insert().

It looks like it's very unlikely to reproduce. We need to trigger the
rhashtable_insert_rehash() handler under a situation where rehashing
currently occurs (one /rare/ way would be to hit ht-&gt;elasticity limits
while not filled enough to expand the hashtable, but that would rather
require a specifically crafted bind() sequence with knowledge about
destination slots, seems unlikely). It probably makes sense to guard
__netlink_insert() in any case and remap that error. It was suggested
that EOVERFLOW might be better than an already overloaded ENOMEM.

Reference: http://thread.gmane.org/gmane.linux.network/372676
Reported-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bna: fix interrupts storm caused by erroneous packets</title>
<updated>2015-09-29T17:26:25Z</updated>
<author>
<name>Ivan Vecera</name>
<email>ivecera@redhat.com</email>
</author>
<published>2015-08-06T20:48:23Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=1d79bc603aec343479bc56bc770b8b13c9660523'/>
<id>urn:sha1:1d79bc603aec343479bc56bc770b8b13c9660523</id>
<content type='text'>
[ Upstream commit ade4dc3e616e33c80d7e62855fe1b6f9895bc7c3 ]

The commit "e29aa33 bna: Enable Multi Buffer RX" moved packets counter
increment from the beginning of the NAPI processing loop after the check
for erroneous packets so they are never accounted. This counter is used
to inform firmware about number of processed completions (packets).
As these packets are never acked the firmware fires IRQs for them again
and again.

Fixes: e29aa33 ("bna: Enable Multi Buffer RX")
Signed-off-by: Ivan Vecera &lt;ivecera@redhat.com&gt;
Acked-by: Rasesh Mody &lt;rasesh.mody@qlogic.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bridge: netlink: account for the IFLA_BRPORT_PROXYARP_WIFI attribute size and policy</title>
<updated>2015-09-29T17:26:25Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2015-08-04T17:06:33Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b291dba31d0862c9262005ee7a8b38f2377494fa'/>
<id>urn:sha1:b291dba31d0862c9262005ee7a8b38f2377494fa</id>
<content type='text'>
[ Upstream commit 786c2077ec8e9eab37a88fc14aac4309a8061e18 ]

The attribute size wasn't accounted for in the get_slave_size() callback
(br_port_get_slave_size) when it was introduced, so fix it now. Also add
a policy entry for it in br_port_policy.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Fixes: 842a9ae08a25 ("bridge: Extend Proxy ARP design to allow optional rules for Wi-Fi")
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bridge: netlink: account for the IFLA_BRPORT_PROXYARP attribute size and policy</title>
<updated>2015-09-29T17:26:25Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2015-08-04T17:06:32Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=9000d23361befc59b04273c7b5ae1bfee2eaa4ee'/>
<id>urn:sha1:9000d23361befc59b04273c7b5ae1bfee2eaa4ee</id>
<content type='text'>
[ Upstream commit 355b9f9df1f0311f20087350aee8ad96eedca8a9 ]

The attribute size wasn't accounted for in the get_slave_size() callback
(br_port_get_slave_size) when it was introduced, so fix it now. Also add
a policy entry for it in br_port_policy.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Fixes: 958501163ddd ("bridge: Add support for IEEE 802.11 Proxy ARP")
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
