<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/macvlan.c, branch v3.16</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2014-06-11T23:02:55+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2014-06-11T23:02:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=902455e00720018d1dbd38327c3fd5bda6d844ee'/>
<id>902455e00720018d1dbd38327c3fd5bda6d844ee</id>
<content type='text'>
Conflicts:
	net/core/rtnetlink.c
	net/core/skbuff.c

Both conflicts were very simple overlapping changes.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	net/core/rtnetlink.c
	net/core/skbuff.c

Both conflicts were very simple overlapping changes.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: force a list_del() in unregister_netdevice_many()</title>
<updated>2014-06-08T21:15:14+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2014-06-06T13:44:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=87757a917b0b3c0787e0563c679762152be81312'/>
<id>87757a917b0b3c0787e0563c679762152be81312</id>
<content type='text'>
unregister_netdevice_many() API is error prone and we had too
many bugs because of dangling LIST_HEAD on stacks.

See commit f87e6f47933e3e ("net: dont leave active on stack LIST_HEAD")

In fact, instead of making sure no caller leaves an active list_head,
just force a list_del() in the callee. No one seems to need to access
the list after unregister_netdevice_many()

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>
unregister_netdevice_many() API is error prone and we had too
many bugs because of dangling LIST_HEAD on stacks.

See commit f87e6f47933e3e ("net: dont leave active on stack LIST_HEAD")

In fact, instead of making sure no caller leaves an active list_head,
just force a list_del() in the callee. No one seems to need to access
the list after unregister_netdevice_many()

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>macvlan: Support bonding events</title>
<updated>2014-06-04T22:13:54+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-06-04T20:23:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4c9912556867bf89e7bb6946fd218a40b1d12139'/>
<id>4c9912556867bf89e7bb6946fd218a40b1d12139</id>
<content type='text'>
Bonding and team drivers generate specific events during failover
that trigger switch updates.  When a macvlan device is configured
on top of bonding, we want switches to learn about the macvlan
devices as well.   This patch adds a handler to macvlan driver to
propagate these events to all macvlan devices.  We let the generic
inetdev event handler do the work.

This allows macvlan to operated correctly over active-backup
mode bond.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.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>
Bonding and team drivers generate specific events during failover
that trigger switch updates.  When a macvlan device is configured
on top of bonding, we want switches to learn about the macvlan
devices as well.   This patch adds a handler to macvlan driver to
propagate these events to all macvlan devices.  We let the generic
inetdev event handler do the work.

This allows macvlan to operated correctly over active-backup
mode bond.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>macvlan: add netpoll support</title>
<updated>2014-06-02T23:05:24+00:00</updated>
<author>
<name>dingtianhong</name>
<email>dingtianhong@huawei.com</email>
</author>
<published>2014-05-30T08:00:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=688cea83f4396fa98b77a126ed278b89daccccdc'/>
<id>688cea83f4396fa98b77a126ed278b89daccccdc</id>
<content type='text'>
Add netpoll support to macvlan devices. Based on the netpoll support in the 802.1q vlan code.

Tested and macvlan could work well with netconsole.

Signed-off-by: Ding Tianhong &lt;dingtianhong@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>
Add netpoll support to macvlan devices. Based on the netpoll support in the 802.1q vlan code.

Tested and macvlan could work well with netconsole.

Signed-off-by: Ding Tianhong &lt;dingtianhong@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>macvlan: fix the problem when mac address changes for passthru mode</title>
<updated>2014-06-02T22:57:34+00:00</updated>
<author>
<name>dingtianhong</name>
<email>dingtianhong@huawei.com</email>
</author>
<published>2014-05-30T06:32:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e289fd28176b78de7e54bf6c8e2b558afefaf6df'/>
<id>e289fd28176b78de7e54bf6c8e2b558afefaf6df</id>
<content type='text'>
The macvlan dev should always have the same mac address like lowerdev
when in the passthru mode, change the mac address alone will break the
work mechanism, so when the lowerdev or macvlan mac address changes,
we should propagate the changes to another dev.

v1-&gt;v2: Allow macvlan dev to change mac address for passthru mode and propagate to
	lowerdev.

v2-&gt;v3: Don't set the mac address to the lower dev's unicast address for
	passthru mode when mac address changes.

Signed-off-by: Ding Tianhong &lt;dingtianhong@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>
The macvlan dev should always have the same mac address like lowerdev
when in the passthru mode, change the mac address alone will break the
work mechanism, so when the lowerdev or macvlan mac address changes,
we should propagate the changes to another dev.

v1-&gt;v2: Allow macvlan dev to change mac address for passthru mode and propagate to
	lowerdev.

v2-&gt;v3: Don't set the mac address to the lower dev's unicast address for
	passthru mode when mac address changes.

Signed-off-by: Ding Tianhong &lt;dingtianhong@huawei.com&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/davem/net</title>
<updated>2014-05-24T04:32:30+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2014-05-24T04:32:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=54e5c4def0614ab540fbdf68e45342a4af141702'/>
<id>54e5c4def0614ab540fbdf68e45342a4af141702</id>
<content type='text'>
Conflicts:
	drivers/net/bonding/bond_alb.c
	drivers/net/ethernet/altera/altera_msgdma.c
	drivers/net/ethernet/altera/altera_sgdma.c
	net/ipv6/xfrm6_output.c

Several cases of overlapping changes.

The xfrm6_output.c has a bug fix which overlaps the renaming
of skb-&gt;local_df to skb-&gt;ignore_df.

In the Altera TSE driver cases, the register access cleanups
in net-next overlapped with bug fixes done in net.

Similarly a bug fix to send ALB packets in the bonding driver using
the right source address overlaps with cleanups in net-next.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/bonding/bond_alb.c
	drivers/net/ethernet/altera/altera_msgdma.c
	drivers/net/ethernet/altera/altera_sgdma.c
	net/ipv6/xfrm6_output.c

Several cases of overlapping changes.

The xfrm6_output.c has a bug fix which overlaps the renaming
of skb-&gt;local_df to skb-&gt;ignore_df.

In the Altera TSE driver cases, the register access cleanups
in net-next overlapped with bug fixes done in net.

Similarly a bug fix to send ALB packets in the bonding driver using
the right source address overlaps with cleanups in net-next.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>macvlan: Fix lockdep warnings with stacked macvlan devices</title>
<updated>2014-05-17T02:14:49+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-05-16T21:04:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c674ac30c549596295eb0a5af7f4714c0b905b6f'/>
<id>c674ac30c549596295eb0a5af7f4714c0b905b6f</id>
<content type='text'>
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;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>macvlan: simplify the structure port</title>
<updated>2014-05-16T03:35:16+00:00</updated>
<author>
<name>dingtianhong</name>
<email>dingtianhong@huawei.com</email>
</author>
<published>2014-05-15T11:11:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a188a54d11629bef2169052297e61f3767ca8ce5'/>
<id>a188a54d11629bef2169052297e61f3767ca8ce5</id>
<content type='text'>
The port-&gt;count was used to count the number of macvlan devs
in the same port, but the list vlans could play the same role
to do that, so free the port if the list vlans is empty and
no need to use the parameter count.

Signed-off-by: Ding Tianhong &lt;dingtianhong@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>
The port-&gt;count was used to count the number of macvlan devs
in the same port, but the list vlans could play the same role
to do that, so free the port if the list vlans is empty and
no need to use the parameter count.

Signed-off-by: Ding Tianhong &lt;dingtianhong@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>macvlan: Propagate lowerdev MTU changes</title>
<updated>2014-05-14T19:35:03+00:00</updated>
<author>
<name>dingtianhong</name>
<email>dingtianhong@huawei.com</email>
</author>
<published>2014-05-13T06:39:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3763e7ef17143f5e9ae044638e65d2b0c0305fcf'/>
<id>3763e7ef17143f5e9ae044638e65d2b0c0305fcf</id>
<content type='text'>
When the physical MTU changes we should ensure that all existing MACVLAN
dev MTU do not exceed the new lowerdev MTU. This patch adds that
propagation.

Signed-off-by: Ding Tianhong &lt;dingtianhong@huawei.com&gt;
Reviewed-by: Jiri Pirko &lt;jiri@resnulli.us&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>
When the physical MTU changes we should ensure that all existing MACVLAN
dev MTU do not exceed the new lowerdev MTU. This patch adds that
propagation.

Signed-off-by: Ding Tianhong &lt;dingtianhong@huawei.com&gt;
Reviewed-by: Jiri Pirko &lt;jiri@resnulli.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>macvlan: Don't propagate IFF_ALLMULTI changes on down interfaces.</title>
<updated>2014-05-12T18:15:37+00:00</updated>
<author>
<name>Peter Christensen</name>
<email>pch@ordbogen.com</email>
</author>
<published>2014-05-08T09:15:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=bbeb0eadcf9fe74fb2b9b1a6fea82cd538b1e556'/>
<id>bbeb0eadcf9fe74fb2b9b1a6fea82cd538b1e556</id>
<content type='text'>
Clearing the IFF_ALLMULTI flag on a down interface could cause an allmulti
overflow on the underlying interface.

Attempting the set IFF_ALLMULTI on the underlying interface would cause an
error and the log message:

"allmulti touches root, set allmulti failed."

Signed-off-by: Peter Christensen &lt;pch@ordbogen.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>
Clearing the IFF_ALLMULTI flag on a down interface could cause an allmulti
overflow on the underlying interface.

Attempting the set IFF_ALLMULTI on the underlying interface would cause an
error and the log message:

"allmulti touches root, set allmulti failed."

Signed-off-by: Peter Christensen &lt;pch@ordbogen.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
