• V
    docs: net: dsa: delete misinformation about -EOPNOTSUPP for FDB/MDB/VLAN · 6ba1a4aa
    Vladimir Oltean 提交于
    Returning -EOPNOTSUPP does *NOT* mean anything special.
    
    port_vlan_add() is actually called from 2 code paths, one is
    vlan_vid_add() from 8021q module and the other is
    br_switchdev_port_vlan_add() from switchdev.
    
    The bridge has a wrapper __vlan_vid_add() which first tries via
    switchdev, then if that returns -EOPNOTSUPP, tries again via the VLAN RX
    filters in the 8021q module. But DSA doesn't distinguish between one
    call path and the other when calling the driver's port_vlan_add(), so if
    the driver returns -EOPNOTSUPP to switchdev, it also returns -EOPNOTSUPP
    to the 8021q module. And the latter is a hard error.
    
    port_fdb_add() is called from the deferred dsa_owq only, so obviously
    its return code isn't propagated anywhere, and cannot be interpreted in
    any way.
    
    The return code from port_mdb_add() is propagated to the bridge, but
    again, this doesn't do anything special when -EOPNOTSUPP is returned,
    but rather, br_switchdev_mdb_notify() returns void.
    Signed-off-by: NVladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
    Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    6ba1a4aa
dsa.rst 56.5 KB