aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoi Dayan <roid@mellanox.com>2014-07-31 06:27:44 -0400
committerRoland Dreier <roland@purestorage.com>2014-08-01 18:10:04 -0400
commit96ed02d4be3c68527130decd3a7d18240da4bee5 (patch)
tree9939dc49cbc6717297bf70771f39d65040b0c587
parent64aa90f26c06e1cb2aacfb98a7d0eccfbd6c1a91 (diff)
IB/iser: Support IPv6 address family
Replace struct sockaddr_in with struct sockaddr which supports both IPv4 and IPv6, and print using the %pIS format directive. Signed-off-by: Roi Dayan <roid@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.c3
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.h4
-rw-r--r--drivers/infiniband/ulp/iser/iser_verbs.c17
3 files changed, 9 insertions, 15 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index eb7973957a6e..1a53fd22aedf 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -604,8 +604,7 @@ iscsi_iser_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
604 ib_conn->ep = ep; 604 ib_conn->ep = ep;
605 iser_conn_init(ib_conn); 605 iser_conn_init(ib_conn);
606 606
607 err = iser_connect(ib_conn, NULL, (struct sockaddr_in *)dst_addr, 607 err = iser_connect(ib_conn, NULL, dst_addr, non_blocking);
608 non_blocking);
609 if (err) 608 if (err)
610 return ERR_PTR(err); 609 return ERR_PTR(err);
611 610
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.h b/drivers/infiniband/ulp/iser/iscsi_iser.h
index 97cd385bf7f7..37e928477b08 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.h
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.h
@@ -448,8 +448,8 @@ int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *task,
448 enum iser_data_dir cmd_dir); 448 enum iser_data_dir cmd_dir);
449 449
450int iser_connect(struct iser_conn *ib_conn, 450int iser_connect(struct iser_conn *ib_conn,
451 struct sockaddr_in *src_addr, 451 struct sockaddr *src_addr,
452 struct sockaddr_in *dst_addr, 452 struct sockaddr *dst_addr,
453 int non_blocking); 453 int non_blocking);
454 454
455int iser_reg_page_vec(struct iser_conn *ib_conn, 455int iser_reg_page_vec(struct iser_conn *ib_conn,
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index ea01075f9f9b..dc0c90f4c312 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -810,22 +810,19 @@ void iser_conn_init(struct iser_conn *ib_conn)
810 * sleeps until the connection is established or rejected 810 * sleeps until the connection is established or rejected
811 */ 811 */
812int iser_connect(struct iser_conn *ib_conn, 812int iser_connect(struct iser_conn *ib_conn,
813 struct sockaddr_in *src_addr, 813 struct sockaddr *src_addr,
814 struct sockaddr_in *dst_addr, 814 struct sockaddr *dst_addr,
815 int non_blocking) 815 int non_blocking)
816{ 816{
817 struct sockaddr *src, *dst;
818 int err = 0; 817 int err = 0;
819 818
820 sprintf(ib_conn->name, "%pI4:%d", 819 sprintf(ib_conn->name, "%pISp", dst_addr);
821 &dst_addr->sin_addr.s_addr, dst_addr->sin_port); 820
821 iser_info("connecting to: %s\n", ib_conn->name);
822 822
823 /* the device is known only --after-- address resolution */ 823 /* the device is known only --after-- address resolution */
824 ib_conn->device = NULL; 824 ib_conn->device = NULL;
825 825
826 iser_info("connecting to: %pI4, port 0x%x\n",
827 &dst_addr->sin_addr, dst_addr->sin_port);
828
829 ib_conn->state = ISER_CONN_PENDING; 826 ib_conn->state = ISER_CONN_PENDING;
830 827
831 ib_conn->cma_id = rdma_create_id(iser_cma_handler, 828 ib_conn->cma_id = rdma_create_id(iser_cma_handler,
@@ -837,9 +834,7 @@ int iser_connect(struct iser_conn *ib_conn,
837 goto id_failure; 834 goto id_failure;
838 } 835 }
839 836
840 src = (struct sockaddr *)src_addr; 837 err = rdma_resolve_addr(ib_conn->cma_id, src_addr, dst_addr, 1000);
841 dst = (struct sockaddr *)dst_addr;
842 err = rdma_resolve_addr(ib_conn->cma_id, src, dst, 1000);
843 if (err) { 838 if (err) {
844 iser_err("rdma_resolve_addr failed: %d\n", err); 839 iser_err("rdma_resolve_addr failed: %d\n", err);
845 goto addr_failure; 840 goto addr_failure;