Răsfoiți Sursa

IB/mthca: Fix uninitialized variable in mthca_alloc_qp()

mthca_alloc_sqp() by mthca_set_qp_size() need to set qp->transport
before calling mthca_set_qp_size(), since the value is used there.

Signed-off-by: Jack Morgenstein <jackm@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Jack Morgenstein 19 ani în urmă
părinte
comite
b3f64967fa
1 a modificat fișierele cu 5 adăugiri și 4 ștergeri
  1. 5 4
      drivers/infiniband/hw/mthca/mthca_qp.c

+ 5 - 4
drivers/infiniband/hw/mthca/mthca_qp.c

@@ -1196,10 +1196,6 @@ int mthca_alloc_qp(struct mthca_dev *dev,
 {
 {
 	int err;
 	int err;
 
 
-	err = mthca_set_qp_size(dev, cap, pd, qp);
-	if (err)
-		return err;
-
 	switch (type) {
 	switch (type) {
 	case IB_QPT_RC: qp->transport = RC; break;
 	case IB_QPT_RC: qp->transport = RC; break;
 	case IB_QPT_UC: qp->transport = UC; break;
 	case IB_QPT_UC: qp->transport = UC; break;
@@ -1207,6 +1203,10 @@ int mthca_alloc_qp(struct mthca_dev *dev,
 	default: return -EINVAL;
 	default: return -EINVAL;
 	}
 	}
 
 
+	err = mthca_set_qp_size(dev, cap, pd, qp);
+	if (err)
+		return err;
+
 	qp->qpn = mthca_alloc(&dev->qp_table.alloc);
 	qp->qpn = mthca_alloc(&dev->qp_table.alloc);
 	if (qp->qpn == -1)
 	if (qp->qpn == -1)
 		return -ENOMEM;
 		return -ENOMEM;
@@ -1239,6 +1239,7 @@ int mthca_alloc_sqp(struct mthca_dev *dev,
 	u32 mqpn = qpn * 2 + dev->qp_table.sqp_start + port - 1;
 	u32 mqpn = qpn * 2 + dev->qp_table.sqp_start + port - 1;
 	int err;
 	int err;
 
 
+	sqp->qp.transport = MLX;
 	err = mthca_set_qp_size(dev, cap, pd, &sqp->qp);
 	err = mthca_set_qp_size(dev, cap, pd, &sqp->qp);
 	if (err)
 	if (err)
 		return err;
 		return err;