Revert "net/smc: Replace ib_query_gid with rdma_get_gid_attr"
[linux-2.6-block.git] / net / smc / smc_ib.c
index 74f29f814ec1f9daf73c27ba6fc3a4a39c71f971..117b05f1a49475e4df494f04056ab0502a2d344e 100644 (file)
@@ -373,21 +373,17 @@ void smc_ib_buf_unmap_sg(struct smc_ib_device *smcibdev,
 
 static int smc_ib_fill_gid_and_mac(struct smc_ib_device *smcibdev, u8 ibport)
 {
-       const struct ib_gid_attr *gattr;
-       int rc = 0;
+       struct ib_gid_attr gattr;
+       int rc;
 
-       gattr = rdma_get_gid_attr(smcibdev->ibdev, ibport, 0);
-       if (IS_ERR(gattr))
-               return PTR_ERR(gattr);
-       if (!gattr->ndev) {
-               rc = -ENODEV;
-               goto done;
-       }
-       smcibdev->gid[ibport - 1] = gattr->gid;
-       memcpy(smcibdev->mac[ibport - 1], gattr->ndev->dev_addr, ETH_ALEN);
-done:
-       rdma_put_gid_attr(gattr);
-       return rc;
+       rc = ib_query_gid(smcibdev->ibdev, ibport, 0,
+                         &smcibdev->gid[ibport - 1], &gattr);
+       if (rc || !gattr.ndev)
+               return -ENODEV;
+
+       memcpy(smcibdev->mac[ibport - 1], gattr.ndev->dev_addr, ETH_ALEN);
+       dev_put(gattr.ndev);
+       return 0;
 }
 
 /* Create an identifier unique for this instance of SMC-R.