On Tue, Aug 10, 2021 at 02:50:24PM +0300, Vladimir Oltean wrote: > The blamed commit a new field to struct switchdev_notifier_fdb_info, but > did not make sure that all call paths set it to something valid. For > example, a switchdev driver may emit a SWITCHDEV_FDB_ADD_TO_BRIDGE > notifier, and since the 'is_local' flag is not set, it contains junk > from the stack, so the bridge might interpret those notifications as > being for local FDB entries when that was not intended. > > To avoid that now and in the future, zero-initialize all > switchdev_notifier_fdb_info structures created by drivers such that all > newly added fields to not need to touch drivers again. > > Fixes: 2c4eca3ef716 ("net: bridge: switchdev: include local flag in FDB notifications") > Reported-by: Ido Schimmel <idosch@xxxxxxxxxx> > Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx> > Reviewed-by: Ido Schimmel <idosch@xxxxxxxxxx> > Tested-by: Ido Schimmel <idosch@xxxxxxxxxx> > --- > v1->v2: use an empty struct initializer as opposed to memset, as > suggested by Leon Romanovsky > > drivers/net/ethernet/marvell/prestera/prestera_switchdev.c | 4 ++-- > drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c | 2 +- > drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 4 ++-- > drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 2 +- > drivers/net/ethernet/microchip/sparx5/sparx5_mactable.c | 2 +- > drivers/net/ethernet/rocker/rocker_main.c | 2 +- > drivers/net/ethernet/rocker/rocker_ofdpa.c | 2 +- > drivers/net/ethernet/ti/am65-cpsw-switchdev.c | 2 +- > drivers/net/ethernet/ti/cpsw_switchdev.c | 2 +- > drivers/s390/net/qeth_l2_main.c | 4 ++-- > net/dsa/slave.c | 2 +- > 11 files changed, 14 insertions(+), 14 deletions(-) > Thanks, Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxx>