net: dsa: mv88e6xxx: Fix off-by-one in VTU devlink region size
authorTobias Waldekranz <tobias@waldekranz.com>
Wed, 21 Apr 2021 12:04:53 +0000 (14:04 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Apr 2021 17:25:09 +0000 (10:25 -0700)
In the unlikely event of the VTU being loaded to the brim with 4k
entries, the last one was placed in the buffer, but the size reported
to devlink was off-by-one. Make sure that the final entry is available
to the caller.

Fixes: ca4d632aef03 ("net: dsa: mv88e6xxx: Export VTU as devlink region")
Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/devlink.c

index 21953d6..ada7a38 100644 (file)
@@ -678,7 +678,7 @@ static int mv88e6xxx_setup_devlink_regions_global(struct dsa_switch *ds,
                                sizeof(struct mv88e6xxx_devlink_atu_entry);
                        break;
                case MV88E6XXX_REGION_VTU:
-                       size = mv88e6xxx_max_vid(chip) *
+                       size = (mv88e6xxx_max_vid(chip) + 1) *
                                sizeof(struct mv88e6xxx_devlink_vtu_entry);
                        break;
                }