Merge branch 'mlxsw-Various-fixes'
authorDavid S. Miller <davem@davemloft.net>
Wed, 15 Jan 2020 12:16:30 +0000 (04:16 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jan 2020 12:16:30 +0000 (04:16 -0800)
commit8b792f84c6377b27235fef16f5e78a59f890b3e1
treea7a5552a426e701b4f4d00fcf43c8d789e4c487b
parenteb507906feaaf827395e5f96f2320e0c7731e4ff
parent85005b82e59fa7bb7388b12594ab2067bf73d66c
Merge branch 'mlxsw-Various-fixes'

Ido Schimmel says:

====================
mlxsw: Various fixes

This patch set contains various fixes for mlxsw.

Patch #1 splits the init() callback between Spectrum-2 and Spectrum-3 in
order to avoid enforcing the same firmware version for both ASICs, as
this can't possibly work. Without this patch the driver cannot boot with
the Spectrum-3 ASIC.

Patches #2-#3 fix a long standing race condition that was recently
exposed while testing the driver on an emulator, which is very slow
compared to the actual hardware. The problem is explained in detail in
the commit messages.

Patch #4 fixes a selftest.

Patch #5 prevents offloaded qdiscs from presenting a non-zero backlog to
the user when the netdev is down. This is done by clearing the cached
backlog in the driver when the netdev goes down.

Patch #6 fixes qdisc statistics (backlog and tail drops) to also take
into account the multicast traffic classes.

v2:
* Patches #2-#3: use skb_cow_head() instead of skb_unshare() as
  suggested by Jakub. Remove unnecessary check regarding headroom
* Patches #5-#6: new
====================

Signed-off-by: David S. Miller <davem@davemloft.net>