• Vivien Didelot's avatar
    net: dsa: remove bitmap operations · e65d45cc
    Vivien Didelot authored
    The bitmap operations were introduced to simplify the switch drivers
    in the future, since most of them could implement the common VLAN and
    MDB operations (add, del, dump) with simple functions taking all target
    ports at once, and thus limiting the number of hardware accesses.
    
    Programming an MDB or VLAN this way in a single operation would clearly
    simplify the drivers a lot but would require a new get-set interface
    in DSA. The usage of such bitmap from the stack also raised concerned
    in the past, leading to the dynamic allocation of a new ds->_bitmap
    member in the dsa_switch structure. So let's get rid of them for now.
    
    This commit nicely wraps the ds->ops->port_{mdb,vlan}_{prepare,add}
    switch operations into new dsa_switch_{mdb,vlan}_{prepare,add}
    variants not using any bitmap argument anymore.
    
    New dsa_switch_{mdb,vlan}_match helpers have been introduced to make
    clear which local port of a switch must be programmed with the target
    object. While the targeted user port is an obvious candidate, the
    DSA links must also be programmed, as well as the CPU port for VLANs.
    
    While at it, also remove local variables that are only used once.
    Signed-off-by: default avatarVivien Didelot <vivien.didelot@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e65d45cc
switch.c 8.82 KB