<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include, branch v3.14.5</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include?h=v3.14.5</id>
<link rel='self' href='https://git.amat.us/linux/atom/include?h=v3.14.5'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-05-31T20:20:38Z</updated>
<entry>
<title>rtnetlink: wait for unregistering devices in rtnl_link_unregister()</title>
<updated>2014-05-31T20:20:38Z</updated>
<author>
<name>Cong Wang</name>
<email>cwang@twopensource.com</email>
</author>
<published>2014-05-12T22:11:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=af8c0e0612f5288b895d427f275d8ca436efab24'/>
<id>urn:sha1:af8c0e0612f5288b895d427f275d8ca436efab24</id>
<content type='text'>
[ Upstream commit 200b916f3575bdf11609cb447661b8d5957b0bbf ]

From: Cong Wang &lt;cwang@twopensource.com&gt;

commit 50624c934db18ab90 (net: Delay default_device_exit_batch until no
devices are unregistering) introduced rtnl_lock_unregistering() for
default_device_exit_batch(). Same race could happen we when rmmod a driver
which calls rtnl_link_unregister() as we call dev-&gt;destructor without rtnl
lock.

For long term, I think we should clean up the mess of netdev_run_todo()
and net namespce exit code.

Cc: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Cong Wang &lt;cwang@twopensource.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: avoid dependency of net_get_random_once on nop patching</title>
<updated>2014-05-31T20:20:38Z</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2014-05-11T20:59:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=adeb3fe4ef6621793d7f1d6f0b9c9cc88827c5b7'/>
<id>urn:sha1:adeb3fe4ef6621793d7f1d6f0b9c9cc88827c5b7</id>
<content type='text'>
[ Upstream commit 3d4405226d27b3a215e4d03cfa51f536244e5de7 ]

net_get_random_once depends on the static keys infrastructure to patch up
the branch to the slow path during boot. This was realized by abusing the
static keys api and defining a new initializer to not enable the call
site while still indicating that the branch point should get patched
up. This was needed to have the fast path considered likely by gcc.

The static key initialization during boot up normally walks through all
the registered keys and either patches in ideal nops or enables the jump
site but omitted that step on x86 if ideal nops where already placed at
static_key branch points. Thus net_get_random_once branches not always
became active.

This patch switches net_get_random_once to the ordinary static_key
api and thus places the kernel fast path in the - by gcc considered -
unlikely path.  Microbenchmarks on Intel and AMD x86-64 showed that
the unlikely path actually beats the likely path in terms of cycle cost
and that different nop patterns did not make much difference, thus this
switch should not be noticeable.

Fixes: a48e42920ff38b ("net: introduce new macro net_get_random_once")
Reported-by: Tuomas Räsänen &lt;tuomasjjrasanen@tjjr.fi&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&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>vsock: Make transport the proto owner</title>
<updated>2014-05-31T20:20:36Z</updated>
<author>
<name>Andy King</name>
<email>acking@vmware.com</email>
</author>
<published>2014-05-01T22:20:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1b3ac8488ee4a5dd42b6c1809ca8e80fb64c549c'/>
<id>urn:sha1:1b3ac8488ee4a5dd42b6c1809ca8e80fb64c549c</id>
<content type='text'>
[ Upstream commit 2c4a336e0a3e203fab6aa8d8f7bb70a0ad968a6b ]

Right now the core vsock module is the owner of the proto family. This
means there's nothing preventing the transport module from unloading if
there are open sockets, which results in a panic. Fix that by allowing
the transport to be the owner, which will refcount it properly.

Includes version bump to 1.0.1.0-k

Passes checkpatch this time, I swear...

Acked-by: Dmitry Torokhov &lt;dtor@vmware.com&gt;
Signed-off-by: Andy King &lt;acking@vmware.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: Fix ns_capable check in sock_diag_put_filterinfo</title>
<updated>2014-05-31T20:20:34Z</updated>
<author>
<name>Andrew Lutomirski</name>
<email>luto@amacapital.net</email>
</author>
<published>2014-04-17T04:41:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=265bcb0ea1205296273412e8a7051756d5a9d61f'/>
<id>urn:sha1:265bcb0ea1205296273412e8a7051756d5a9d61f</id>
<content type='text'>
[ Upstream commit 78541c1dc60b65ecfce5a6a096fc260219d6784e ]

The caller needs capabilities on the namespace being queried, not on
their own namespace.  This is a security bug, although it likely has
only a minor impact.

Cc: stable@vger.kernel.org
Signed-off-by: Andy Lutomirski &lt;luto@amacapital.net&gt;
Acked-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.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: sctp: cache auth_enable per endpoint</title>
<updated>2014-05-31T20:20:34Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-04-17T15:26:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3938b0336a93fa5faa242dc9e5823ac69df9e066'/>
<id>urn:sha1:3938b0336a93fa5faa242dc9e5823ac69df9e066</id>
<content type='text'>
[ Upstream commit b14878ccb7fac0242db82720b784ab62c467c0dc ]

Currently, it is possible to create an SCTP socket, then switch
auth_enable via sysctl setting to 1 and crash the system on connect:

Oops[#1]:
CPU: 0 PID: 0 Comm: swapper Not tainted 3.14.1-mipsgit-20140415 #1
task: ffffffff8056ce80 ti: ffffffff8055c000 task.ti: ffffffff8055c000
[...]
Call Trace:
[&lt;ffffffff8043c4e8&gt;] sctp_auth_asoc_set_default_hmac+0x68/0x80
[&lt;ffffffff8042b300&gt;] sctp_process_init+0x5e0/0x8a4
[&lt;ffffffff8042188c&gt;] sctp_sf_do_5_1B_init+0x234/0x34c
[&lt;ffffffff804228c8&gt;] sctp_do_sm+0xb4/0x1e8
[&lt;ffffffff80425a08&gt;] sctp_endpoint_bh_rcv+0x1c4/0x214
[&lt;ffffffff8043af68&gt;] sctp_rcv+0x588/0x630
[&lt;ffffffff8043e8e8&gt;] sctp6_rcv+0x10/0x24
[&lt;ffffffff803acb50&gt;] ip6_input+0x2c0/0x440
[&lt;ffffffff8030fc00&gt;] __netif_receive_skb_core+0x4a8/0x564
[&lt;ffffffff80310650&gt;] process_backlog+0xb4/0x18c
[&lt;ffffffff80313cbc&gt;] net_rx_action+0x12c/0x210
[&lt;ffffffff80034254&gt;] __do_softirq+0x17c/0x2ac
[&lt;ffffffff800345e0&gt;] irq_exit+0x54/0xb0
[&lt;ffffffff800075a4&gt;] ret_from_irq+0x0/0x4
[&lt;ffffffff800090ec&gt;] rm7k_wait_irqoff+0x24/0x48
[&lt;ffffffff8005e388&gt;] cpu_startup_entry+0xc0/0x148
[&lt;ffffffff805a88b0&gt;] start_kernel+0x37c/0x398
Code: dd0900b8  000330f8  0126302d &lt;dcc60000&gt; 50c0fff1  0047182a  a48306a0
03e00008  00000000
---[ end trace b530b0551467f2fd ]---
Kernel panic - not syncing: Fatal exception in interrupt

What happens while auth_enable=0 in that case is, that
ep-&gt;auth_hmacs is initialized to NULL in sctp_auth_init_hmacs()
when endpoint is being created.

After that point, if an admin switches over to auth_enable=1,
the machine can crash due to NULL pointer dereference during
reception of an INIT chunk. When we enter sctp_process_init()
via sctp_sf_do_5_1B_init() in order to respond to an INIT chunk,
the INIT verification succeeds and while we walk and process
all INIT params via sctp_process_param() we find that
net-&gt;sctp.auth_enable is set, therefore do not fall through,
but invoke sctp_auth_asoc_set_default_hmac() instead, and thus,
dereference what we have set to NULL during endpoint
initialization phase.

The fix is to make auth_enable immutable by caching its value
during endpoint initialization, so that its original value is
being carried along until destruction. The bug seems to originate
from the very first days.

Fix in joint work with Daniel Borkmann.

Reported-by: Joshua Kinard &lt;kumba@gentoo.org&gt;
Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: Daniel Borkmann &lt;dborkman@redhat.com&gt;
Acked-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Tested-by: Joshua Kinard &lt;kumba@gentoo.org&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>macvlan: Fix lockdep warnings with stacked macvlan devices</title>
<updated>2014-05-31T20:20:34Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-05-16T21:04:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1c030bf16f8c157ef227ee598ac40ff75fb7ec9c'/>
<id>urn:sha1:1c030bf16f8c157ef227ee598ac40ff75fb7ec9c</id>
<content type='text'>
[ Upstream commit c674ac30c549596295eb0a5af7f4714c0b905b6f ]

Macvlan devices try to avoid stacking, but that's not always
successfull or even desired.  As an example, the following
configuration is perefectly legal and valid:

eth0 &lt;--- macvlan0 &lt;---- vlan0.10 &lt;--- macvlan1

However, this configuration produces the following lockdep
trace:
[  115.620418] ======================================================
[  115.620477] [ INFO: possible circular locking dependency detected ]
[  115.620516] 3.15.0-rc1+ #24 Not tainted
[  115.620540] -------------------------------------------------------
[  115.620577] ip/1704 is trying to acquire lock:
[  115.620604]  (&amp;vlan_netdev_addr_lock_key/1){+.....}, at: [&lt;ffffffff815df49c&gt;] dev_uc_sync+0x3c/0x80
[  115.620686]
but task is already holding lock:
[  115.620723]  (&amp;macvlan_netdev_addr_lock_key){+.....}, at: [&lt;ffffffff815da5be&gt;] dev_set_rx_mode+0x1e/0x40
[  115.620795]
which lock already depends on the new lock.

[  115.620853]
the existing dependency chain (in reverse order) is:
[  115.620894]
-&gt; #1 (&amp;macvlan_netdev_addr_lock_key){+.....}:
[  115.620935]        [&lt;ffffffff810d57f2&gt;] lock_acquire+0xa2/0x130
[  115.620974]        [&lt;ffffffff816f62e7&gt;] _raw_spin_lock_nested+0x37/0x50
[  115.621019]        [&lt;ffffffffa07296c3&gt;] vlan_dev_set_rx_mode+0x53/0x110 [8021q]
[  115.621066]        [&lt;ffffffff815da557&gt;] __dev_set_rx_mode+0x57/0xa0
[  115.621105]        [&lt;ffffffff815da5c6&gt;] dev_set_rx_mode+0x26/0x40
[  115.621143]        [&lt;ffffffff815da6be&gt;] __dev_open+0xde/0x140
[  115.621174]        [&lt;ffffffff815da9ad&gt;] __dev_change_flags+0x9d/0x170
[  115.621174]        [&lt;ffffffff815daaa9&gt;] dev_change_flags+0x29/0x60
[  115.621174]        [&lt;ffffffff815e7f11&gt;] do_setlink+0x321/0x9a0
[  115.621174]        [&lt;ffffffff815ea59f&gt;] rtnl_newlink+0x51f/0x730
[  115.621174]        [&lt;ffffffff815e6e75&gt;] rtnetlink_rcv_msg+0x95/0x250
[  115.621174]        [&lt;ffffffff81608b19&gt;] netlink_rcv_skb+0xa9/0xc0
[  115.621174]        [&lt;ffffffff815e6dca&gt;] rtnetlink_rcv+0x2a/0x40
[  115.621174]        [&lt;ffffffff81608150&gt;] netlink_unicast+0xf0/0x1c0
[  115.621174]        [&lt;ffffffff8160851f&gt;] netlink_sendmsg+0x2ff/0x740
[  115.621174]        [&lt;ffffffff815bc9db&gt;] sock_sendmsg+0x8b/0xc0
[  115.621174]        [&lt;ffffffff815bd4b9&gt;] ___sys_sendmsg+0x369/0x380
[  115.621174]        [&lt;ffffffff815bdbb2&gt;] __sys_sendmsg+0x42/0x80
[  115.621174]        [&lt;ffffffff815bdc02&gt;] SyS_sendmsg+0x12/0x20
[  115.621174]        [&lt;ffffffff816ffd69&gt;] system_call_fastpath+0x16/0x1b
[  115.621174]
-&gt; #0 (&amp;vlan_netdev_addr_lock_key/1){+.....}:
[  115.621174]        [&lt;ffffffff810d4d43&gt;] __lock_acquire+0x1773/0x1a60
[  115.621174]        [&lt;ffffffff810d57f2&gt;] lock_acquire+0xa2/0x130
[  115.621174]        [&lt;ffffffff816f62e7&gt;] _raw_spin_lock_nested+0x37/0x50
[  115.621174]        [&lt;ffffffff815df49c&gt;] dev_uc_sync+0x3c/0x80
[  115.621174]        [&lt;ffffffffa0696d2a&gt;] macvlan_set_mac_lists+0xca/0x110 [macvlan]
[  115.621174]        [&lt;ffffffff815da557&gt;] __dev_set_rx_mode+0x57/0xa0
[  115.621174]        [&lt;ffffffff815da5c6&gt;] dev_set_rx_mode+0x26/0x40
[  115.621174]        [&lt;ffffffff815da6be&gt;] __dev_open+0xde/0x140
[  115.621174]        [&lt;ffffffff815da9ad&gt;] __dev_change_flags+0x9d/0x170
[  115.621174]        [&lt;ffffffff815daaa9&gt;] dev_change_flags+0x29/0x60
[  115.621174]        [&lt;ffffffff815e7f11&gt;] do_setlink+0x321/0x9a0
[  115.621174]        [&lt;ffffffff815ea59f&gt;] rtnl_newlink+0x51f/0x730
[  115.621174]        [&lt;ffffffff815e6e75&gt;] rtnetlink_rcv_msg+0x95/0x250
[  115.621174]        [&lt;ffffffff81608b19&gt;] netlink_rcv_skb+0xa9/0xc0
[  115.621174]        [&lt;ffffffff815e6dca&gt;] rtnetlink_rcv+0x2a/0x40
[  115.621174]        [&lt;ffffffff81608150&gt;] netlink_unicast+0xf0/0x1c0
[  115.621174]        [&lt;ffffffff8160851f&gt;] netlink_sendmsg+0x2ff/0x740
[  115.621174]        [&lt;ffffffff815bc9db&gt;] sock_sendmsg+0x8b/0xc0
[  115.621174]        [&lt;ffffffff815bd4b9&gt;] ___sys_sendmsg+0x369/0x380
[  115.621174]        [&lt;ffffffff815bdbb2&gt;] __sys_sendmsg+0x42/0x80
[  115.621174]        [&lt;ffffffff815bdc02&gt;] SyS_sendmsg+0x12/0x20
[  115.621174]        [&lt;ffffffff816ffd69&gt;] system_call_fastpath+0x16/0x1b
[  115.621174]
other info that might help us debug this:

[  115.621174]  Possible unsafe locking scenario:

[  115.621174]        CPU0                    CPU1
[  115.621174]        ----                    ----
[  115.621174]   lock(&amp;macvlan_netdev_addr_lock_key);
[  115.621174]                                lock(&amp;vlan_netdev_addr_lock_key/1);
[  115.621174]                                lock(&amp;macvlan_netdev_addr_lock_key);
[  115.621174]   lock(&amp;vlan_netdev_addr_lock_key/1);
[  115.621174]
 *** DEADLOCK ***

[  115.621174] 2 locks held by ip/1704:
[  115.621174]  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff815e6dbb&gt;] rtnetlink_rcv+0x1b/0x40
[  115.621174]  #1:  (&amp;macvlan_netdev_addr_lock_key){+.....}, at: [&lt;ffffffff815da5be&gt;] dev_set_rx_mode+0x1e/0x40
[  115.621174]
stack backtrace:
[  115.621174] CPU: 3 PID: 1704 Comm: ip Not tainted 3.15.0-rc1+ #24
[  115.621174] Hardware name: Hewlett-Packard HP xw8400 Workstation/0A08h, BIOS 786D5 v02.38 10/25/2010
[  115.621174]  ffffffff82339ae0 ffff880465f79568 ffffffff816ee20c ffffffff82339ae0
[  115.621174]  ffff880465f795a8 ffffffff816e9e1b ffff880465f79600 ffff880465b019c8
[  115.621174]  0000000000000001 0000000000000002 ffff880465b019c8 ffff880465b01230
[  115.621174] Call Trace:
[  115.621174]  [&lt;ffffffff816ee20c&gt;] dump_stack+0x4d/0x66
[  115.621174]  [&lt;ffffffff816e9e1b&gt;] print_circular_bug+0x200/0x20e
[  115.621174]  [&lt;ffffffff810d4d43&gt;] __lock_acquire+0x1773/0x1a60
[  115.621174]  [&lt;ffffffff810d3172&gt;] ? trace_hardirqs_on_caller+0xb2/0x1d0
[  115.621174]  [&lt;ffffffff810d57f2&gt;] lock_acquire+0xa2/0x130
[  115.621174]  [&lt;ffffffff815df49c&gt;] ? dev_uc_sync+0x3c/0x80
[  115.621174]  [&lt;ffffffff816f62e7&gt;] _raw_spin_lock_nested+0x37/0x50
[  115.621174]  [&lt;ffffffff815df49c&gt;] ? dev_uc_sync+0x3c/0x80
[  115.621174]  [&lt;ffffffff815df49c&gt;] dev_uc_sync+0x3c/0x80
[  115.621174]  [&lt;ffffffffa0696d2a&gt;] macvlan_set_mac_lists+0xca/0x110 [macvlan]
[  115.621174]  [&lt;ffffffff815da557&gt;] __dev_set_rx_mode+0x57/0xa0
[  115.621174]  [&lt;ffffffff815da5c6&gt;] dev_set_rx_mode+0x26/0x40
[  115.621174]  [&lt;ffffffff815da6be&gt;] __dev_open+0xde/0x140
[  115.621174]  [&lt;ffffffff815da9ad&gt;] __dev_change_flags+0x9d/0x170
[  115.621174]  [&lt;ffffffff815daaa9&gt;] dev_change_flags+0x29/0x60
[  115.621174]  [&lt;ffffffff811e1db1&gt;] ? mem_cgroup_bad_page_check+0x21/0x30
[  115.621174]  [&lt;ffffffff815e7f11&gt;] do_setlink+0x321/0x9a0
[  115.621174]  [&lt;ffffffff810d394c&gt;] ? __lock_acquire+0x37c/0x1a60
[  115.621174]  [&lt;ffffffff815ea59f&gt;] rtnl_newlink+0x51f/0x730
[  115.621174]  [&lt;ffffffff815ea169&gt;] ? rtnl_newlink+0xe9/0x730
[  115.621174]  [&lt;ffffffff815e6e75&gt;] rtnetlink_rcv_msg+0x95/0x250
[  115.621174]  [&lt;ffffffff810d329d&gt;] ? trace_hardirqs_on+0xd/0x10
[  115.621174]  [&lt;ffffffff815e6dbb&gt;] ? rtnetlink_rcv+0x1b/0x40
[  115.621174]  [&lt;ffffffff815e6de0&gt;] ? rtnetlink_rcv+0x40/0x40
[  115.621174]  [&lt;ffffffff81608b19&gt;] netlink_rcv_skb+0xa9/0xc0
[  115.621174]  [&lt;ffffffff815e6dca&gt;] rtnetlink_rcv+0x2a/0x40
[  115.621174]  [&lt;ffffffff81608150&gt;] netlink_unicast+0xf0/0x1c0
[  115.621174]  [&lt;ffffffff8160851f&gt;] netlink_sendmsg+0x2ff/0x740
[  115.621174]  [&lt;ffffffff815bc9db&gt;] sock_sendmsg+0x8b/0xc0
[  115.621174]  [&lt;ffffffff8119d4af&gt;] ? might_fault+0x5f/0xb0
[  115.621174]  [&lt;ffffffff8119d4f8&gt;] ? might_fault+0xa8/0xb0
[  115.621174]  [&lt;ffffffff8119d4af&gt;] ? might_fault+0x5f/0xb0
[  115.621174]  [&lt;ffffffff815cb51e&gt;] ? verify_iovec+0x5e/0xe0
[  115.621174]  [&lt;ffffffff815bd4b9&gt;] ___sys_sendmsg+0x369/0x380
[  115.621174]  [&lt;ffffffff816faa0d&gt;] ? __do_page_fault+0x11d/0x570
[  115.621174]  [&lt;ffffffff810cfe9f&gt;] ? up_read+0x1f/0x40
[  115.621174]  [&lt;ffffffff816fab04&gt;] ? __do_page_fault+0x214/0x570
[  115.621174]  [&lt;ffffffff8120a10b&gt;] ? mntput_no_expire+0x6b/0x1c0
[  115.621174]  [&lt;ffffffff8120a0b7&gt;] ? mntput_no_expire+0x17/0x1c0
[  115.621174]  [&lt;ffffffff8120a284&gt;] ? mntput+0x24/0x40
[  115.621174]  [&lt;ffffffff815bdbb2&gt;] __sys_sendmsg+0x42/0x80
[  115.621174]  [&lt;ffffffff815bdc02&gt;] SyS_sendmsg+0x12/0x20
[  115.621174]  [&lt;ffffffff816ffd69&gt;] system_call_fastpath+0x16/0x1b

Fix this by correctly providing macvlan lockdep class.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.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>vlan: Fix lockdep warning with stacked vlan devices.</title>
<updated>2014-05-31T20:20:34Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-05-16T21:04:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=102e103f76a52e68f2169b86f0536debaf65d548'/>
<id>urn:sha1:102e103f76a52e68f2169b86f0536debaf65d548</id>
<content type='text'>
[ Upstream commit d38569ab2bba6e6b3233acfc3a84cdbcfbd1f79f ]

This reverts commit dc8eaaa006350d24030502a4521542e74b5cb39f.
	vlan: Fix lockdep warning when vlan dev handle notification

Instead we use the new new API to find the lock subclass of
our vlan device.  This way we can support configurations where
vlans are interspersed with other devices:
  bond -&gt; vlan -&gt; macvlan -&gt; vlan

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.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: Allow for more then a single subclass for netif_addr_lock</title>
<updated>2014-05-31T20:20:34Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-05-16T21:04:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d0166f814a1daef5992c19d5c18f2860e17ad2f1'/>
<id>urn:sha1:d0166f814a1daef5992c19d5c18f2860e17ad2f1</id>
<content type='text'>
[ Upstream commit 25175ba5c9bff9aaf0229df34bb5d54c81633ec3 ]

Currently netif_addr_lock_nested assumes that there can be only
a single nesting level between 2 devices.  However, if we
have multiple devices of the same type stacked, this fails.
For example:
 eth0 &lt;-- vlan0.10 &lt;-- vlan0.10.20

A more complicated configuration may stack more then one type of
device in different order.
Ex:
  eth0 &lt;-- vlan0.10 &lt;-- macvlan0 &lt;-- vlan1.10.20 &lt;-- macvlan1

This patch adds an ndo_* function that allows each stackable
device to report its nesting level.  If the device doesn't
provide this function default subclass of 1 is used.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.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: Find the nesting level of a given device by type.</title>
<updated>2014-05-31T20:20:34Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-05-16T21:04:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=69ab2a8b80f2a479df6728effb935174dd5303bf'/>
<id>urn:sha1:69ab2a8b80f2a479df6728effb935174dd5303bf</id>
<content type='text'>
[ Upstream commit 4085ebe8c31face855fd01ee40372cb4aab1df3a ]

Multiple devices in the kernel can be stacked/nested and they
need to know their nesting level for the purposes of lockdep.
This patch provides a generic function that determines a nesting
level of a particular device by its type (ex: vlan, macvlan, etc).
We only care about nesting of the same type of devices.

For example:
  eth0 &lt;- vlan0.10 &lt;- macvlan0 &lt;- vlan1.20

The nesting level of vlan1.20 would be 1, since there is another vlan
in the stack under it.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.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>Revert "net: sctp: Fix a_rwnd/rwnd management to reflect real state of the receiver's buffer"</title>
<updated>2014-05-31T20:20:33Z</updated>
<author>
<name>Daniel Borkmann</name>
<email>dborkman@redhat.com</email>
</author>
<published>2014-04-14T19:45:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bde6d78b4a05212e6611c7c2fe104fa72512b6eb'/>
<id>urn:sha1:bde6d78b4a05212e6611c7c2fe104fa72512b6eb</id>
<content type='text'>
[ Upstream commit 362d52040c71f6e8d8158be48c812d7729cb8df1 ]

This reverts commit ef2820a735f7 ("net: sctp: Fix a_rwnd/rwnd management
to reflect real state of the receiver's buffer") as it introduced a
serious performance regression on SCTP over IPv4 and IPv6, though a not
as dramatic on the latter. Measurements are on 10Gbit/s with ixgbe NICs.

Current state:

[root@Lab200slot2 ~]# iperf3 --sctp -4 -c 192.168.241.3 -V -l 1452 -t 60
iperf version 3.0.1 (10 January 2014)
Linux Lab200slot2 3.14.0 #1 SMP Thu Apr 3 23:18:29 EDT 2014 x86_64
Time: Fri, 11 Apr 2014 17:56:21 GMT
Connecting to host 192.168.241.3, port 5201
      Cookie: Lab200slot2.1397238981.812898.548918
[  4] local 192.168.241.2 port 38616 connected to 192.168.241.3 port 5201
Starting Test: protocol: SCTP, 1 streams, 1452 byte blocks, omitting 0 seconds, 60 second test
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.09   sec  20.8 MBytes   161 Mbits/sec
[  4]   1.09-2.13   sec  10.8 MBytes  86.8 Mbits/sec
[  4]   2.13-3.15   sec  3.57 MBytes  29.5 Mbits/sec
[  4]   3.15-4.16   sec  4.33 MBytes  35.7 Mbits/sec
[  4]   4.16-6.21   sec  10.4 MBytes  42.7 Mbits/sec
[  4]   6.21-6.21   sec  0.00 Bytes    0.00 bits/sec
[  4]   6.21-7.35   sec  34.6 MBytes   253 Mbits/sec
[  4]   7.35-11.45  sec  22.0 MBytes  45.0 Mbits/sec
[  4]  11.45-11.45  sec  0.00 Bytes    0.00 bits/sec
[  4]  11.45-11.45  sec  0.00 Bytes    0.00 bits/sec
[  4]  11.45-11.45  sec  0.00 Bytes    0.00 bits/sec
[  4]  11.45-12.51  sec  16.0 MBytes   126 Mbits/sec
[  4]  12.51-13.59  sec  20.3 MBytes   158 Mbits/sec
[  4]  13.59-14.65  sec  13.4 MBytes   107 Mbits/sec
[  4]  14.65-16.79  sec  33.3 MBytes   130 Mbits/sec
[  4]  16.79-16.79  sec  0.00 Bytes    0.00 bits/sec
[  4]  16.79-17.82  sec  5.94 MBytes  48.7 Mbits/sec
(etc)

[root@Lab200slot2 ~]#  iperf3 --sctp -6 -c 2001:db8:0:f101::1 -V -l 1400 -t 60
iperf version 3.0.1 (10 January 2014)
Linux Lab200slot2 3.14.0 #1 SMP Thu Apr 3 23:18:29 EDT 2014 x86_64
Time: Fri, 11 Apr 2014 19:08:41 GMT
Connecting to host 2001:db8:0:f101::1, port 5201
      Cookie: Lab200slot2.1397243321.714295.2b3f7c
[  4] local 2001:db8:0:f101::2 port 55804 connected to 2001:db8:0:f101::1 port 5201
Starting Test: protocol: SCTP, 1 streams, 1400 byte blocks, omitting 0 seconds, 60 second test
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   169 MBytes  1.42 Gbits/sec
[  4]   1.00-2.00   sec   201 MBytes  1.69 Gbits/sec
[  4]   2.00-3.00   sec   188 MBytes  1.58 Gbits/sec
[  4]   3.00-4.00   sec   174 MBytes  1.46 Gbits/sec
[  4]   4.00-5.00   sec   165 MBytes  1.39 Gbits/sec
[  4]   5.00-6.00   sec   199 MBytes  1.67 Gbits/sec
[  4]   6.00-7.00   sec   163 MBytes  1.36 Gbits/sec
[  4]   7.00-8.00   sec   174 MBytes  1.46 Gbits/sec
[  4]   8.00-9.00   sec   193 MBytes  1.62 Gbits/sec
[  4]   9.00-10.00  sec   196 MBytes  1.65 Gbits/sec
[  4]  10.00-11.00  sec   157 MBytes  1.31 Gbits/sec
[  4]  11.00-12.00  sec   175 MBytes  1.47 Gbits/sec
[  4]  12.00-13.00  sec   192 MBytes  1.61 Gbits/sec
[  4]  13.00-14.00  sec   199 MBytes  1.67 Gbits/sec
(etc)

After patch:

[root@Lab200slot2 ~]#  iperf3 --sctp -4 -c 192.168.240.3 -V -l 1452 -t 60
iperf version 3.0.1 (10 January 2014)
Linux Lab200slot2 3.14.0+ #1 SMP Mon Apr 14 12:06:40 EDT 2014 x86_64
Time: Mon, 14 Apr 2014 16:40:48 GMT
Connecting to host 192.168.240.3, port 5201
      Cookie: Lab200slot2.1397493648.413274.65e131
[  4] local 192.168.240.2 port 50548 connected to 192.168.240.3 port 5201
Starting Test: protocol: SCTP, 1 streams, 1452 byte blocks, omitting 0 seconds, 60 second test
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   240 MBytes  2.02 Gbits/sec
[  4]   1.00-2.00   sec   239 MBytes  2.01 Gbits/sec
[  4]   2.00-3.00   sec   240 MBytes  2.01 Gbits/sec
[  4]   3.00-4.00   sec   239 MBytes  2.00 Gbits/sec
[  4]   4.00-5.00   sec   245 MBytes  2.05 Gbits/sec
[  4]   5.00-6.00   sec   240 MBytes  2.01 Gbits/sec
[  4]   6.00-7.00   sec   240 MBytes  2.02 Gbits/sec
[  4]   7.00-8.00   sec   239 MBytes  2.01 Gbits/sec

With the reverted patch applied, the SCTP/IPv4 performance is back
to normal on latest upstream for IPv4 and IPv6 and has same throughput
as 3.4.2 test kernel, steady and interval reports are smooth again.

Fixes: ef2820a735f7 ("net: sctp: Fix a_rwnd/rwnd management to reflect real state of the receiver's buffer")
Reported-by: Peter Butler &lt;pbutler@sonusnet.com&gt;
Reported-by: Dongsheng Song &lt;dongsheng.song@gmail.com&gt;
Reported-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;
Tested-by: Peter Butler &lt;pbutler@sonusnet.com&gt;
Signed-off-by: Daniel Borkmann &lt;dborkman@redhat.com&gt;
Cc: Matija Glavinic Pecotic &lt;matija.glavinic-pecotic.ext@nsn.com&gt;
Cc: Alexander Sverdlin &lt;alexander.sverdlin@nsn.com&gt;
Cc: Vlad Yasevich &lt;vyasevich@gmail.com&gt;
Acked-by: Vlad Yasevich &lt;vyasevich@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>
</feed>
