On Tue, Mar 16, 2021 at 11:17, Vladimir Oltean <[email protected]> wrote: > On Mon, Mar 15, 2021 at 10:13:57PM +0100, Tobias Waldekranz wrote: >> +static int mv88e6xxx_vtu_get(struct mv88e6xxx_chip *chip, u16 vid, >> + struct mv88e6xxx_vtu_entry *entry) >> { >> + int err; >> + >> if (!chip->info->ops->vtu_getnext) >> return -EOPNOTSUPP; >> >> - return chip->info->ops->vtu_getnext(chip, entry); >> + entry->vid = vid - 1; > > Should the vtu_get API not work with vid 0 as well? Shouldn't we > initialize entry->vid to mv88e6xxx_max_vid(chip) in that case?
Good catch. We never load VID 0 to the VTU today, but this function should be ready for it, if that ever changes. Fixing in v2. >> + entry->valid = false; >> + >> + err = chip->info->ops->vtu_getnext(chip, entry); >> + >> + if (entry->vid != vid) >> + entry->valid = false; >> + >> + return err; >> }
