Message ID | 1467549727-23479-4-git-send-email-leon@kernel.org (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On Sun, Jul 3, 2016 at 3:42 PM, Leon Romanovsky <leon@kernel.org> wrote: > --- a/drivers/infiniband/hw/mlx5/qp.c > +++ b/drivers/infiniband/hw/mlx5/qp.c > @@ -2175,7 +2175,8 @@ static int mlx5_set_path(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp, > } > > if (ll == IB_LINK_LAYER_ETHERNET) { > - if (!(ah->ah_flags & IB_AH_GRH)) > + if (!(ah->ah_flags & IB_AH_GRH) && > + (qp->ibqp.qp_type != IB_QPT_RAW_PACKET)) > return -EINVAL; > memcpy(path->rmac, ah->dmac, sizeof(ah->dmac)); > path->udp_sport = mlx5_get_roce_udp_sport(dev, port, As you can see here, that code was written with RoCE state of mind, e.g they set the remote mac and udp source port, with both being irrelevant for RAW packet QPs. So in that respect, your fix is wrong. Make the code clear and correct in what they set to RoCE QPs, to RAW Packet QPs and to both. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Jul 04, 2016 at 12:55:36AM +0300, Or Gerlitz wrote: > On Sun, Jul 3, 2016 at 3:42 PM, Leon Romanovsky <leon@kernel.org> wrote: > > > --- a/drivers/infiniband/hw/mlx5/qp.c > > +++ b/drivers/infiniband/hw/mlx5/qp.c > > @@ -2175,7 +2175,8 @@ static int mlx5_set_path(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp, > > } > > > > if (ll == IB_LINK_LAYER_ETHERNET) { > > - if (!(ah->ah_flags & IB_AH_GRH)) > > + if (!(ah->ah_flags & IB_AH_GRH) && > > + (qp->ibqp.qp_type != IB_QPT_RAW_PACKET)) > > return -EINVAL; > > memcpy(path->rmac, ah->dmac, sizeof(ah->dmac)); > > path->udp_sport = mlx5_get_roce_udp_sport(dev, port, > > As you can see here, that code was written with RoCE state of mind, > e.g they set the remote mac and udp source port, with both being > irrelevant for RAW packet QPs. So in that respect, your fix is wrong. > Make the code clear and correct in what they set to RoCE QPs, to RAW > Packet QPs and to both. If I read your response and code correctly, we can safely drop this patch. Am I right? > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Jul 4, 2016 at 8:14 AM, Leon Romanovsky <leonro@mellanox.com> wrote: > On Mon, Jul 04, 2016 at 12:55:36AM +0300, Or Gerlitz wrote: > If I read your response and code correctly, we can safely drop this > patch. Am I right? Of course no. You are fixing a bug and I pointed you that you need to extend the fix a bit. Or. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c index e9b3a1f..fbd94a9 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c @@ -2175,7 +2175,8 @@ static int mlx5_set_path(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp, } if (ll == IB_LINK_LAYER_ETHERNET) { - if (!(ah->ah_flags & IB_AH_GRH)) + if (!(ah->ah_flags & IB_AH_GRH) && + (qp->ibqp.qp_type != IB_QPT_RAW_PACKET)) return -EINVAL; memcpy(path->rmac, ah->dmac, sizeof(ah->dmac)); path->udp_sport = mlx5_get_roce_udp_sport(dev, port,