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

Hal Rosenstock halr at voltaire.com
Thu Jan 19 04:35:04 PST 2006


On Thu, 2006-01-19 at 00:25, Nishanth Aravamudan wrote:
> Trying to run the compilation tests against 2.6.16-rc1-git1 and am
> getting this:
> 
>   CC [M]  drivers/infiniband/ulp/iser/iscsi_iser.o
>   drivers/infiniband/ulp/iser/iscsi_iser.c:1573: warning: initialization from incompatible pointer type
>   drivers/infiniband/ulp/iser/iscsi_iser.c:1574: warning: initialization from incompatible pointer type
>   drivers/infiniband/ulp/iser/iscsi_iser.c:1575: warning: initialization from incompatible pointer type
>   drivers/infiniband/ulp/iser/iscsi_iser.c:1577: warning: initialization from incompatible pointer type
>   drivers/infiniband/ulp/iser/iscsi_iser.c:1579: error: unknown field `get_param' specified in initializer
>   drivers/infiniband/ulp/iser/iscsi_iser.c:1579: warning: initialization from incompatible pointer type
>   drivers/infiniband/ulp/iser/iscsi_iser.c: In function `iscsi_iser_init':
>   drivers/infiniband/ulp/iser/iscsi_iser.c:1886: warning: assignment makes integer from pointer without a cast
>   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
> 
> when using the patch you sent me. Should I not apply the patch to
> 2.6.16-rc1 and on? Or are these new issues. This is with svn 5065.

These are new issues as struct iscsi_transport changed in 2.6.16-rc1 as
follows:

 /**
  * struct iscsi_transport - iSCSI Transport template
  *
@@ -48,23 +54,31 @@ struct iscsi_transport {
         char *name;
         unsigned int caps;
         struct scsi_host_template *host_template;
+        /* LLD session/scsi_host data size */
         int hostdata_size;
+        /* LLD iscsi_host data size */
+        int ihostdata_size;
+        /* LLD connection data size */
+        int conndata_size;
         int max_lun;
         unsigned int max_conn;
         unsigned int max_cmd_len;
-        iscsi_sessionh_t (*create_session) (uint32_t initial_cmdsn,
-                                            struct Scsi_Host *shost);
-        void (*destroy_session) (iscsi_sessionh_t session);
-        iscsi_connh_t (*create_conn) (iscsi_sessionh_t session, uint32_t cid);
+        struct Scsi_Host *(*create_session) (struct scsi_transport_template *t,
+                                             uint32_t initial_cmdsn);
+        void (*destroy_session) (struct Scsi_Host *shost);
+        struct iscsi_cls_conn *(*create_conn) (struct Scsi_Host *shost,
+                                uint32_t cid);
         int (*bind_conn) (iscsi_sessionh_t session, iscsi_connh_t conn,
                           uint32_t transport_fd, int is_leading);
         int (*start_conn) (iscsi_connh_t conn);
         void (*stop_conn) (iscsi_connh_t conn, int flag);
-        void (*destroy_conn) (iscsi_connh_t conn);
+        void (*destroy_conn) (struct iscsi_cls_conn *conn);
         int (*set_param) (iscsi_connh_t conn, enum iscsi_param param,
                           uint32_t value);
-        int (*get_param) (iscsi_connh_t conn, enum iscsi_param param,
-                          uint32_t *value);
+        int (*get_conn_param) (void *conndata, enum iscsi_param param,
+                               uint32_t *value);
+        int (*get_session_param) (struct Scsi_Host *shost,
+                                  enum iscsi_param param, uint32_t *value);
         int (*send_pdu) (iscsi_connh_t conn, struct iscsi_hdr *hdr,
                          char *data, uint32_t data_size);
         void (*get_stats) (iscsi_connh_t conn, struct iscsi_stats *stats);
@@ -73,7 +87,7 @@ struct iscsi_transport {
 /*
  * transport registration upcalls
  */
-extern int iscsi_register_transport(struct iscsi_transport *tt);
+extern struct scsi_transport_template *iscsi_register_transport(struct iscsi_transport *tt);
 extern int iscsi_unregister_transport(struct iscsi_transport *tt);

and the compliants are on create_session, destroy_session, create_conn,
destroy_conn, get_param members of the struct and on the call to
iscsi_register_transport. More on this later...

-- Hal




More information about the general mailing list