<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/team, branch v4.9</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.9</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.9'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-08-26T20:08:59Z</updated>
<entry>
<title>team: loadbalance: push lacpdus to exact delivery</title>
<updated>2016-08-26T20:08:59Z</updated>
<author>
<name>Jiri Pirko</name>
<email>jiri@mellanox.com</email>
</author>
<published>2016-08-25T16:30:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c15e07b02bf0450bc8e60f2cc51cb42daa371417'/>
<id>urn:sha1:c15e07b02bf0450bc8e60f2cc51cb42daa371417</id>
<content type='text'>
When team is in bridge and LACP is utilized, LACPDU packets are pushed
to userspace using raw socket and there they are processed. However,
since 8626c56c8279b, LACPDU skbs are dropped by bridge rx_handler so
they never reach packet handlers in rx path. Fix this by explicity treat
LACPDUs to be pushed to exact delivery in team rx_handler.

Reported-by: Ido Schimmel &lt;idosch@mellanox.com&gt;
Fixes: 8626c56c8279b ("bridge: fix potential use-after-free when hook returns QUEUE or STOLEN verdict")
Signed-off-by: Jiri Pirko &lt;jiri@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: introduce default neigh_construct/destroy ndo calls for L2 upper devices</title>
<updated>2016-07-05T16:06:28Z</updated>
<author>
<name>Jiri Pirko</name>
<email>jiri@mellanox.com</email>
</author>
<published>2016-07-05T09:27:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=18bfb924f0005a728caadd90ba755b2a660bf441'/>
<id>urn:sha1:18bfb924f0005a728caadd90ba755b2a660bf441</id>
<content type='text'>
L2 upper device needs to propagate neigh_construct/destroy calls down to
lower devices. Do this by defining default ndo functions and use them in
team, bond, bridge and vlan.

Signed-off-by: Jiri Pirko &lt;jiri@mellanox.com&gt;
Reviewed-by: Ido Schimmel &lt;idosch@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2016-06-30T09:03:36Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2016-06-30T09:03:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ee58b57100ca953da7320c285315a95db2f7053d'/>
<id>urn:sha1:ee58b57100ca953da7320c285315a95db2f7053d</id>
<content type='text'>
Several cases of overlapping changes, except the packet scheduler
conflicts which deal with the addition of the free list parameter
to qdisc_enqueue().

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>team: Fix possible deadlock during team enslave</title>
<updated>2016-06-22T20:31:03Z</updated>
<author>
<name>Ido Schimmel</name>
<email>idosch@mellanox.com</email>
</author>
<published>2016-06-20T08:53:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=942f64c4c2be19a1b4a0c4295182b42d153899bf'/>
<id>urn:sha1:942f64c4c2be19a1b4a0c4295182b42d153899bf</id>
<content type='text'>
Both dev_uc_sync_multiple() and dev_mc_sync_multiple() require the
source device to be locked by netif_addr_lock_bh(), but this is missing
in team's enslave function, so add it.

This fixes the following lockdep warning:

Possible interrupt unsafe locking scenario:

        CPU0                    CPU1
        ----                    ----
   lock(_xmit_ETHER/1);
                                local_irq_disable();
                                lock(&amp;(&amp;mc-&gt;mca_lock)-&gt;rlock);
                                lock(&amp;team_netdev_addr_lock_key);
   &lt;Interrupt&gt;
     lock(&amp;(&amp;mc-&gt;mca_lock)-&gt;rlock);

  *** DEADLOCK ***

Fixes: cb41c997d444 ("team: team should sync the port's uc/mc addrs when add a port")
Signed-off-by: Jiri Pirko &lt;jiri@mellanox.com&gt;
Signed-off-by: Ido Schimmel &lt;idosch@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: add netdev_lockdep_set_classes() helper</title>
<updated>2016-06-09T20:28:37Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2016-06-09T14:45:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d3fff6c443fe8f8a5ef2bdcea45e2ff39db948c7'/>
<id>urn:sha1:d3fff6c443fe8f8a5ef2bdcea45e2ff39db948c7</id>
<content type='text'>
It is time to add netdev_lockdep_set_classes() helper
so that lockdep annotations per device type are easier to manage.

This removes a lot of copies and missing annotations.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net_sched: transform qdisc running bit into a seqcount</title>
<updated>2016-06-07T23:37:13Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2016-06-06T16:37:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f9eb8aea2a1e12fc2f584d1627deeb957435a801'/>
<id>urn:sha1:f9eb8aea2a1e12fc2f584d1627deeb957435a801</id>
<content type='text'>
Instead of using a single bit (__QDISC___STATE_RUNNING)
in sch-&gt;__state, use a seqcount.

This adds lockdep support, but more importantly it will allow us
to sample qdisc/class statistics without having to grab qdisc root lock.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Cc: Jamal Hadi Salim &lt;jhs@mojatatu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>team: don't call netdev_change_features under team-&gt;lock</title>
<updated>2016-05-25T19:58:04Z</updated>
<author>
<name>Ivan Vecera</name>
<email>ivecera@redhat.com</email>
</author>
<published>2016-05-25T19:21:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f6988cb63a4e698d8a62a1d085d263d1fcc351ea'/>
<id>urn:sha1:f6988cb63a4e698d8a62a1d085d263d1fcc351ea</id>
<content type='text'>
The team_device_event() notifier calls team_compute_features() to fix
vlan_features under team-&gt;lock to protect team-&gt;port_list. The problem is
that subsequent __team_compute_features() calls netdev_change_features()
to propagate vlan_features to upper vlan devices while team-&gt;lock is still
taken. This can lead to deadlock when NETIF_F_LRO is modified on lower
devices or team device itself.

Example:
The team0 as active backup with eth0 and eth1 NICs. Both eth0 &amp; eth1 are
LRO capable and LRO is enabled. Thus LRO is also enabled on team0.

The command 'ethtool -K team0 lro off' now hangs due to this deadlock:

dev_ethtool()
-&gt; ethtool_set_features()
 -&gt; __netdev_update_features(team)
  -&gt; netdev_sync_lower_features()
   -&gt; netdev_update_features(lower_1)
    -&gt; __netdev_update_features(lower_1)
    -&gt; netdev_features_change(lower_1)
     -&gt; call_netdevice_notifiers(...)
      -&gt; team_device_event(lower_1)
       -&gt; team_compute_features(team) [TAKES team-&gt;lock]
        -&gt; netdev_change_features(team)
         -&gt; __netdev_update_features(team)
          -&gt; netdev_sync_lower_features()
           -&gt; netdev_update_features(lower_2)
            -&gt; __netdev_update_features(lower_2)
            -&gt; netdev_features_change(lower_2)
             -&gt; call_netdevice_notifiers(...)
              -&gt; team_device_event(lower_2)
               -&gt; team_compute_features(team) [DEADLOCK]

The bug is present in team from the beginning but it appeared after the commit
fd867d5 (net/core: generic support for disabling netdev features down stack)
that adds synchronization of features with lower devices.

Fixes: fd867d5 (net/core: generic support for disabling netdev features down stack)
Cc: Jiri Pirko &lt;jiri@resnulli.us&gt;
Signed-off-by: Ivan Vecera &lt;ivecera@redhat.com&gt;
Signed-off-by: Jiri Pirko &lt;jiri@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>team: team should sync the port's uc/mc addrs when add a port</title>
<updated>2016-03-30T21:06:58Z</updated>
<author>
<name>Xin Long</name>
<email>lucien.xin@gmail.com</email>
</author>
<published>2016-03-30T02:58:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=cb41c997d4446b39dd03b8a74196125739d7c3ac'/>
<id>urn:sha1:cb41c997d4446b39dd03b8a74196125739d7c3ac</id>
<content type='text'>
There is an issue when we use mavtap over team:
When we replug nic links from team0, the real nics's mc list will not
include the maddr for macvtap any more. then we can't receive pkts to
macvtap device, as they are filterred by mc list of nic.

In Bonding Driver, it syncs the uc/mc addrs in bond_enslave().

We will fix this issue on team by adding the port's uc/mc addrs sync in
team_port_add.

Signed-off-by: Xin Long &lt;lucien.xin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>team: remove duplicate set of flag IFF_MULTICAST</title>
<updated>2016-03-19T02:14:47Z</updated>
<author>
<name>Zhang Shengju</name>
<email>zhangshengju@cmss.chinamobile.com</email>
</author>
<published>2016-03-16T09:59:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bc0df13887b1147f4e63390d7d6767f7fa64b91b'/>
<id>urn:sha1:bc0df13887b1147f4e63390d7d6767f7fa64b91b</id>
<content type='text'>
Remove unnecessary set of flag IFF_MULTICAST, since ether_setup
already does this.

Signed-off-by: Zhang Shengju &lt;zhangshengju@cmss.chinamobile.com&gt;
Acked-by: Jiri Pirko &lt;jiri@mellanox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: team: use __ethtool_get_ksettings</title>
<updated>2016-02-26T03:06:46Z</updated>
<author>
<name>David Decotigny</name>
<email>decot@googlers.com</email>
</author>
<published>2016-02-24T18:58:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0ab6b544c185de913fa662c7565d78bdeccb54c4'/>
<id>urn:sha1:0ab6b544c185de913fa662c7565d78bdeccb54c4</id>
<content type='text'>
Signed-off-by: David Decotigny &lt;decot@googlers.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
