FWIW Reviewed-by: Yuval Shaia <yuval.shaia@xxxxxxxxxx> On Sat, Nov 05, 2016 at 09:57:15PM +0200, Leon Romanovsky wrote: > From: Daniel Jurgens <danielj@xxxxxxxxxxxx> > > Check the returned gid index value and return an error if it is invalid. > > Fixes: 5070cd2239bd('IB/mlx4: Replace mechanism for RoCE GID management') > Signed-off-by: Daniel Jurgens <danielj@xxxxxxxxxxxx> > Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> > --- > drivers/infiniband/hw/mlx4/ah.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/infiniband/hw/mlx4/ah.c b/drivers/infiniband/hw/mlx4/ah.c > index 6be7dc3..8dfc76f 100644 > --- a/drivers/infiniband/hw/mlx4/ah.c > +++ b/drivers/infiniband/hw/mlx4/ah.c > @@ -102,7 +102,10 @@ static struct ib_ah *create_iboe_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr > if (vlan_tag < 0x1000) > vlan_tag |= (ah_attr->sl & 7) << 13; > ah->av.eth.port_pd = cpu_to_be32(to_mpd(pd)->pdn | (ah_attr->port_num << 24)); > - ah->av.eth.gid_index = mlx4_ib_gid_index_to_real_index(ibdev, ah_attr->port_num, ah_attr->grh.sgid_index); > + ret = mlx4_ib_gid_index_to_real_index(ibdev, ah_attr->port_num, ah_attr->grh.sgid_index); > + if (ret < 0) > + return ERR_PTR(ret); > + ah->av.eth.gid_index = ret; > ah->av.eth.vlan = cpu_to_be16(vlan_tag); > ah->av.eth.hop_limit = ah_attr->grh.hop_limit; > if (ah_attr->static_rate) { > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" 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 linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html