On Sat, Sep 26, 2015 at 12:21:27PM -0700, Greg Kroah-Hartman wrote: > > This is a note to let you know that I've just added the patch titled > > net/mlx4_core: Fix wrong index in propagating port change event to VFs > > to the 3.14-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > The filename of the patch is: > net-mlx4_core-fix-wrong-index-in-propagating-port-change-event-to-vfs.patch > and it can be found in the queue-3.14 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let <stable@xxxxxxxxxxxxxxx> know about it. > > > From foo@baz Sat Sep 26 11:19:08 PDT 2015 > From: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx> > Date: Wed, 22 Jul 2015 16:53:47 +0300 > Subject: net/mlx4_core: Fix wrong index in propagating port change event to VFs > > From: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx> > > [ Upstream commit 1c1bf34951e8d17941bf708d1901c47e81b15d55 ] > > The port-change event processing in procedure mlx4_eq_int() uses "slave" > as the vf_oper array index. Since the value of "slave" is the PF function > index, the result is that the PF link state is used for deciding to > propagate the event for all the VFs. The VF link state should be used, > so the VF function index should be used here. > > Fixes: 948e306d7d64 ('net/mlx4: Add VF link state support') > Signed-off-by: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx> > Signed-off-by: Or Gerlitz <ogerlitz@xxxxxxxxxxxx> > Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > --- > drivers/net/ethernet/mellanox/mlx4/eq.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > --- a/drivers/net/ethernet/mellanox/mlx4/eq.c > +++ b/drivers/net/ethernet/mellanox/mlx4/eq.c > @@ -557,7 +557,7 @@ static int mlx4_eq_int(struct mlx4_dev * > mlx4_dbg(dev, "%s: Sending MLX4_PORT_CHANGE_SUBTYPE_DOWN" > " to slave: %d, port:%d\n", > __func__, i, port); > - s_info = &priv->mfunc.master.vf_oper[slave].vport[port].state; > + s_info = &priv->mfunc.master.vf_oper[i].vport[port].state; > if (IFLA_VF_LINK_STATE_AUTO == s_info->link_state) > mlx4_slave_event(dev, i, eqe); > } else { /* IB port */ > @@ -583,7 +583,7 @@ static int mlx4_eq_int(struct mlx4_dev * > for (i = 0; i < dev->num_slaves; i++) { > if (i == mlx4_master_func_num(dev)) > continue; > - s_info = &priv->mfunc.master.vf_oper[slave].vport[port].state; > + s_info = &priv->mfunc.master.vf_oper[slave].vport[i].state; As I said previously, this is incorrect; it should be: - s_info = &priv->mfunc.master.vf_oper[slave].vport[port].state; + s_info = &priv->mfunc.master.vf_oper[i].vport[port].state; The 'slave' index should be changed by 'i', not 'port'. Cheers, -- Luís > if (IFLA_VF_LINK_STATE_AUTO == s_info->link_state) > mlx4_slave_event(dev, i, eqe); > } > > > Patches currently in stable-queue which might be from jackm@xxxxxxxxxxxxxxxxxx are > > queue-3.14/net-mlx4_core-fix-wrong-index-in-propagating-port-change-event-to-vfs.patch > queue-3.14/ib-mlx4-forbid-using-sysfs-to-change-roce-pkeys.patch > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html