net: dsa: mv88e6xxx: explicit entry passed to vtu_getnext
mv88e6xxx_vtu_getnext interprets two members from the input mv88e6xxx_vtu_entry structure: the (excluded) vid member to start the iteration from, and the valid argument specifying whether the VID must be written or not (only required once at the start of a loop). Explicit the assignation of these two fields right before calling mv88e6xxx_vtu_getnext, as it is done in the mv88e6xxx_vtu_get wrapper. Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7095a4c497
commit
425d2d37ab
|
@ -1361,9 +1361,7 @@ static int mv88e6xxx_vtu_loadpurge(struct mv88e6xxx_chip *chip,
|
|||
static int mv88e6xxx_atu_new(struct mv88e6xxx_chip *chip, u16 *fid)
|
||||
{
|
||||
DECLARE_BITMAP(fid_bitmap, MV88E6XXX_N_FID);
|
||||
struct mv88e6xxx_vtu_entry vlan = {
|
||||
.vid = chip->info->max_vid,
|
||||
};
|
||||
struct mv88e6xxx_vtu_entry vlan;
|
||||
int i, err;
|
||||
|
||||
bitmap_zero(fid_bitmap, MV88E6XXX_N_FID);
|
||||
|
@ -1378,6 +1376,9 @@ static int mv88e6xxx_atu_new(struct mv88e6xxx_chip *chip, u16 *fid)
|
|||
}
|
||||
|
||||
/* Set every FID bit used by the VLAN entries */
|
||||
vlan.vid = chip->info->max_vid;
|
||||
vlan.valid = false;
|
||||
|
||||
do {
|
||||
err = mv88e6xxx_vtu_getnext(chip, &vlan);
|
||||
if (err)
|
||||
|
@ -1441,9 +1442,7 @@ static int mv88e6xxx_port_check_hw_vlan(struct dsa_switch *ds, int port,
|
|||
u16 vid_begin, u16 vid_end)
|
||||
{
|
||||
struct mv88e6xxx_chip *chip = ds->priv;
|
||||
struct mv88e6xxx_vtu_entry vlan = {
|
||||
.vid = vid_begin - 1,
|
||||
};
|
||||
struct mv88e6xxx_vtu_entry vlan;
|
||||
int i, err;
|
||||
|
||||
/* DSA and CPU ports have to be members of multiple vlans */
|
||||
|
@ -1453,6 +1452,9 @@ static int mv88e6xxx_port_check_hw_vlan(struct dsa_switch *ds, int port,
|
|||
if (!vid_begin)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
vlan.vid = vid_begin - 1;
|
||||
vlan.valid = false;
|
||||
|
||||
do {
|
||||
err = mv88e6xxx_vtu_getnext(chip, &vlan);
|
||||
if (err)
|
||||
|
@ -1789,9 +1791,7 @@ static int mv88e6xxx_port_db_dump_fid(struct mv88e6xxx_chip *chip,
|
|||
static int mv88e6xxx_port_db_dump(struct mv88e6xxx_chip *chip, int port,
|
||||
dsa_fdb_dump_cb_t *cb, void *data)
|
||||
{
|
||||
struct mv88e6xxx_vtu_entry vlan = {
|
||||
.vid = chip->info->max_vid,
|
||||
};
|
||||
struct mv88e6xxx_vtu_entry vlan;
|
||||
u16 fid;
|
||||
int err;
|
||||
|
||||
|
@ -1805,6 +1805,9 @@ static int mv88e6xxx_port_db_dump(struct mv88e6xxx_chip *chip, int port,
|
|||
return err;
|
||||
|
||||
/* Dump VLANs' Filtering Information Databases */
|
||||
vlan.vid = chip->info->max_vid;
|
||||
vlan.valid = false;
|
||||
|
||||
do {
|
||||
err = mv88e6xxx_vtu_getnext(chip, &vlan);
|
||||
if (err)
|
||||
|
|
Loading…
Reference in New Issue