[openib-general] ISER fails to build on 2.6.15-rc7-git3 (svn=4654)

Hal Rosenstock halr at voltaire.com
Fri Dec 30 04:26:34 PST 2005


Hi Nish,

On Fri, 2005-12-30 at 00:04, Nishanth Aravamudan wrote:
> On 29.12.2005 [23:29:10 -0500], Hal Rosenstock wrote:
> > Hi Nish,
> > 
> > On Thu, 2005-12-29 at 20:31, Nishanth Aravamudan wrote:
> > > Hi,
> > > 
> > > Building 2.6.15-rc7-git3 on ppc64 with svn=4654 kernel components leads
> > > to:
> > > 
> > > drivers/infiniband/ulp/iser/iscsi_iser.c: In function `iscsi_iser_conn_set_param':
> > > drivers/infiniband/ulp/iser/iscsi_iser.c:1436: error: `ISCSI_PARAM_RDMAEXTENSIONS' undeclared (first use in this function)
> > > drivers/infiniband/ulp/iser/iscsi_iser.c:1436: error: (Each undeclared identifier is reported only once
> > > drivers/infiniband/ulp/iser/iscsi_iser.c:1436: error: for each function it appears in.)
> > > drivers/infiniband/ulp/iser/iscsi_iser.c: In function `iscsi_iser_conn_get_param':
> > > drivers/infiniband/ulp/iser/iscsi_iser.c:1496: error: `ISCSI_PARAM_RDMAEXTENSIONS' undeclared (first use in this function)
> > > drivers/infiniband/ulp/iser/iscsi_iser.c: At top level:
> > > drivers/infiniband/ulp/iser/iscsi_iser.c:1634: error: unknown field `af' specified in initializer
> > > drivers/infiniband/ulp/iser/iscsi_iser.c:1634: warning: initialization makes pointer from integer without a cast
> > > drivers/infiniband/ulp/iser/iscsi_iser.c:1635: error: unknown field `rdma' specified in initializer
> > > make[3]: *** [drivers/infiniband/ulp/iser/iscsi_iser.o] Error 1
> > > make[2]: *** [drivers/infiniband/ulp/iser] Error 2
> > > make[1]: *** [drivers/infiniband] Error 2
> > > make: *** [drivers] Error 2
> > 
> > There is an iscsi patch required for this as iser requires an open-iscsi
> > version which is subsequent to what is in 2.6.15-rc7-git3. I'm not sure
> > the best way to handle this yet as the build is different for 2.6.14
> > which does not contain open-iscsi.
> 
> Where can I find this patch? I can temporarily add it to the build-path
> for the svn-based builds, until a better solution is found.

I am attaching the patch for this. Note that this patch is for
2.6.15-rc<n> and not 2.6.14 variants. It has been tested with
2.6.15-rc6. Please let me know if it works for you. Thanks.

-- Hal

diff -ru -x '*.o*' -x '*.ko' linux-2.6.15-rc7/drivers/scsi/iscsi_tcp.c linux-2.6.15-rc7-iser/drivers/scsi/iscsi_tcp.c
--- linux-2.6.15-rc7/drivers/scsi/iscsi_tcp.c	2005-12-28 18:21:13.000000000 +0200
+++ linux-2.6.15-rc7-iser/drivers/scsi/iscsi_tcp.c	2005-12-29 08:55:55.000000000 +0200
@@ -3590,6 +3590,8 @@
 	.name			= "tcp",
 	.caps			= CAP_RECOVERY_L0 | CAP_MULTI_R2T | CAP_HDRDGST
 				  | CAP_DATADGST,
+	.af                     = AF_INET,
+	.rdma			= 0,
 	.host_template		= &iscsi_sht,
 	.hostdata_size		= sizeof(struct iscsi_session),
 	.max_conn		= 1,
diff -ru -x '*.o*' -x '*.ko' linux-2.6.15-rc7/drivers/scsi/scsi_transport_iscsi.c linux-2.6.15-rc7-iser/drivers/scsi/scsi_transport_iscsi.c
--- linux-2.6.15-rc7/drivers/scsi/scsi_transport_iscsi.c	2005-12-28 18:21:13.000000000 +0200
+++ linux-2.6.15-rc7-iser/drivers/scsi/scsi_transport_iscsi.c	2005-12-29 08:57:44.000000000 +0200
@@ -117,6 +117,8 @@
 show_transport_attr(max_lun, "%d");
 show_transport_attr(max_conn, "%d");
 show_transport_attr(max_cmd_len, "%d");
+show_transport_attr(af, "%d");
+show_transport_attr(rdma, "%d");
 
 static struct attribute *iscsi_transport_attrs[] = {
 	&class_device_attr_handle.attr,
@@ -124,6 +126,8 @@
 	&class_device_attr_max_lun.attr,
 	&class_device_attr_max_conn.attr,
 	&class_device_attr_max_cmd_len.attr,
+	&class_device_attr_af.attr,
+	&class_device_attr_rdma.attr,
 	NULL,
 };
 
diff -ru -x '*.o*' -x '*.ko' linux-2.6.15-rc7/include/scsi/iscsi_if.h linux-2.6.15-rc7-iser/include/scsi/iscsi_if.h
--- linux-2.6.15-rc7/include/scsi/iscsi_if.h	2005-12-28 18:21:14.000000000 +0200
+++ linux-2.6.15-rc7-iser/include/scsi/iscsi_if.h	2005-12-29 09:02:43.000000000 +0200
@@ -160,8 +160,9 @@
 	ISCSI_PARAM_ERL			= 11,
 	ISCSI_PARAM_IFMARKER_EN		= 12,
 	ISCSI_PARAM_OFMARKER_EN		= 13,
+	ISCSI_PARAM_RDMAEXTENSIONS      = 14,
 };
-#define ISCSI_PARAM_MAX			14
+#define ISCSI_PARAM_MAX			15
 
 typedef uint64_t iscsi_sessionh_t;	/* iSCSI Data-Path session handle */
 typedef uint64_t iscsi_connh_t;		/* iSCSI Data-Path connection handle */
diff -ru -x '*.o*' -x '*.ko' linux-2.6.15-rc7/include/scsi/scsi_transport_iscsi.h linux-2.6.15-rc7-iser/include/scsi/scsi_transport_iscsi.h
--- linux-2.6.15-rc7/include/scsi/scsi_transport_iscsi.h	2005-12-28 18:21:14.000000000 +0200
+++ linux-2.6.15-rc7-iser/include/scsi/scsi_transport_iscsi.h	2005-12-29 09:00:18.000000000 +0200
@@ -30,6 +30,8 @@
  *
  * @name:		transport name
  * @caps:		iSCSI Data-Path capabilities
+ * @af			socket address family
+ * @rdma		indicates if transport supports RDMA operations
  * @create_session:	create new iSCSI session object
  * @destroy_session:	destroy existing iSCSI session object
  * @create_conn:	create new iSCSI connection
@@ -47,6 +49,8 @@
 	struct module *owner;
 	char *name;
 	unsigned int caps;
+	unsigned short af;
+	unsigned short rdma;
 	struct scsi_host_template *host_template;
 	int hostdata_size;
 	int max_lun;









More information about the general mailing list