]> asedeno.scripts.mit.edu Git - linux.git/commit
net: dsa: remove bitmap operations
authorVivien Didelot <vivien.didelot@gmail.com>
Sun, 25 Aug 2019 17:25:15 +0000 (13:25 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Aug 2019 03:17:27 +0000 (20:17 -0700)
commite65d45cc351ac5f1c11e6bac5669e536df753664
treeb3dc9dd80c019aaa2b848ded18fc584f557953fc
parent68aaf4459556b1f9370c259fd486aecad2257552
net: dsa: remove bitmap operations

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: Vivien Didelot <vivien.didelot@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dsa.h
net/dsa/dsa2.c
net/dsa/switch.c