Merge branch 'Pass-extack-to-SWITCHDEV_PORT_OBJ_ADD'
authorDavid S. Miller <davem@davemloft.net>
Thu, 13 Dec 2018 00:34:22 +0000 (16:34 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Dec 2018 00:34:22 +0000 (16:34 -0800)
commit02e1dbe402de8c41787da7b1ef9acd2457b0b84b
tree2528bae022784c5f9b636f0a567ae9f77242f78e
parent351cbde969230a072cabca9969c68ab04e58e6b3
parent06a2fc8f1498dc978e856ef5ded6667b476a3b5b
Merge branch 'Pass-extack-to-SWITCHDEV_PORT_OBJ_ADD'

Petr Machata says:

====================
Pass extack to SWITCHDEV_PORT_OBJ_ADD

Drivers may need to do validation as a result of port object addition.
An example is mlxsw, which needs to check the configuration of a VXLAN
device attached to an offloaded bridge. Without a mapped VLAN, the
invalidity of the device is not important, but as soon as a pvid,
untagged VLAN is configured for the device, it has to be validated and
offloaded. Should the validation fail, there's currently no way to
communicate details of the failure to the user, beyond an error number.

Because currently, extack is not available at all in that area of code,
this patch starts down at the RTNL level and progresses up towards the
driver(s).

In patch #1, ndo_bridge_setlink is updated to include extack, and
callbacks of all clients are updated as well (ignoring the argument).

In patch #2, the bridge driver is updated to propagate the extack
through to the switchdev border, br_switchdev_port_vlan_add().

Patches #3, #4 and #5 then gradually extend switchdev to pass the extack
argument through to the switchdev blocking notifier chain.

Patches #6 and #7 then update mlxsw to pass the extack argument from
VXLAN events resp. port events on to mlxsw_sp_bridge_8021q_vxlan_join().

Finally in patches #8 and #9, the code paths from the previous two
patches are verified to yield an error message.

v2:
- Patch #1:
    - In ndo_bridge_setlink(), keep the whole extack declaration on the
      same line.
====================

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