svn commit: r300040 - in head/sys/dev: cxgbe/cxgbei iscsi

Edward Tomasz Napierala trasz at FreeBSD.org
Tue May 17 08:55:23 UTC 2016


Author: trasz
Date: Tue May 17 08:55:21 2016
New Revision: 300040
URL: https://svnweb.freebsd.org/changeset/base/300040

Log:
  Extend the ICL interface to include the PDU pointer in the task_setup
  method.  This is required for upcoming iSER support.
  
  Obtained from:	Mellanox Technologies (earlier version)
  MFC after:	1 month
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c
  head/sys/dev/iscsi/icl_conn_if.m
  head/sys/dev/iscsi/icl_soft.c
  head/sys/dev/iscsi/icl_wrappers.h
  head/sys/dev/iscsi/iscsi.c

Modified: head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c
==============================================================================
--- head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c	Tue May 17 08:43:50 2016	(r300039)
+++ head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c	Tue May 17 08:55:21 2016	(r300040)
@@ -777,8 +777,8 @@ icl_cxgbei_conn_close(struct icl_conn *i
 }
 
 int
-icl_cxgbei_conn_task_setup(struct icl_conn *ic, struct ccb_scsiio *csio,
-    uint32_t *task_tagp, void **prvp)
+icl_cxgbei_conn_task_setup(struct icl_conn *ic, struct icl_pdu *ip,
+    struct ccb_scsiio *csio, uint32_t *task_tagp, void **prvp)
 {
 	void *prv;
 

Modified: head/sys/dev/iscsi/icl_conn_if.m
==============================================================================
--- head/sys/dev/iscsi/icl_conn_if.m	Tue May 17 08:43:50 2016	(r300039)
+++ head/sys/dev/iscsi/icl_conn_if.m	Tue May 17 08:55:21 2016	(r300040)
@@ -84,6 +84,7 @@ METHOD void close {
 
 METHOD int task_setup {
 	struct icl_conn *_ic;
+	struct icl_pdu *_ip;
 	struct ccb_scsiio *_csio;
 	uint32_t *_task_tag;
 	void **_prvp;

Modified: head/sys/dev/iscsi/icl_soft.c
==============================================================================
--- head/sys/dev/iscsi/icl_soft.c	Tue May 17 08:43:50 2016	(r300039)
+++ head/sys/dev/iscsi/icl_soft.c	Tue May 17 08:55:21 2016	(r300040)
@@ -1424,8 +1424,8 @@ icl_soft_conn_close(struct icl_conn *ic)
 }
 
 int
-icl_soft_conn_task_setup(struct icl_conn *ic, struct ccb_scsiio *csio,
-    uint32_t *task_tagp, void **prvp)
+icl_soft_conn_task_setup(struct icl_conn *ic, struct icl_pdu *ip,
+    struct ccb_scsiio *csio, uint32_t *task_tagp, void **prvp)
 {
 
 	return (0);

Modified: head/sys/dev/iscsi/icl_wrappers.h
==============================================================================
--- head/sys/dev/iscsi/icl_wrappers.h	Tue May 17 08:43:50 2016	(r300039)
+++ head/sys/dev/iscsi/icl_wrappers.h	Tue May 17 08:55:21 2016	(r300040)
@@ -106,11 +106,11 @@ icl_conn_close(struct icl_conn *ic)
 }
 
 static inline int
-icl_conn_task_setup(struct icl_conn *ic, struct ccb_scsiio *csio,
-    uint32_t *task_tagp, void **prvp)
+icl_conn_task_setup(struct icl_conn *ic, struct icl_pdu *ip,
+    struct ccb_scsiio *csio, uint32_t *task_tagp, void **prvp)
 {
 
-	return (ICL_CONN_TASK_SETUP(ic, csio, task_tagp, prvp));
+	return (ICL_CONN_TASK_SETUP(ic, ip, csio, task_tagp, prvp));
 }
 
 static inline void

Modified: head/sys/dev/iscsi/iscsi.c
==============================================================================
--- head/sys/dev/iscsi/iscsi.c	Tue May 17 08:43:50 2016	(r300039)
+++ head/sys/dev/iscsi/iscsi.c	Tue May 17 08:55:21 2016	(r300040)
@@ -172,7 +172,8 @@ static void	iscsi_poll(struct cam_sim *s
 static struct iscsi_outstanding	*iscsi_outstanding_find(struct iscsi_session *is,
 		    uint32_t initiator_task_tag);
 static struct iscsi_outstanding	*iscsi_outstanding_add(struct iscsi_session *is,
-		    union ccb *ccb, uint32_t *initiator_task_tagp);
+		    struct icl_pdu *request, union ccb *ccb,
+		    uint32_t *initiator_task_tagp);
 static void	iscsi_outstanding_remove(struct iscsi_session *is,
 		    struct iscsi_outstanding *io);
 
@@ -2012,7 +2013,7 @@ iscsi_outstanding_find_ccb(struct iscsi_
 }
 
 static struct iscsi_outstanding *
-iscsi_outstanding_add(struct iscsi_session *is,
+iscsi_outstanding_add(struct iscsi_session *is, struct icl_pdu *request,
     union ccb *ccb, uint32_t *initiator_task_tagp)
 {
 	struct iscsi_outstanding *io;
@@ -2027,7 +2028,7 @@ iscsi_outstanding_add(struct iscsi_sessi
 		return (NULL);
 	}
 
-	error = icl_conn_task_setup(is->is_conn, &ccb->csio,
+	error = icl_conn_task_setup(is->is_conn, request, &ccb->csio,
 	    initiator_task_tagp, &io->io_icl_prv);
 	if (error != 0) {
 		ISCSI_SESSION_WARN(is,
@@ -2093,7 +2094,7 @@ iscsi_action_abort(struct iscsi_session 
 
 	initiator_task_tag = is->is_initiator_task_tag++;
 
-	io = iscsi_outstanding_add(is, NULL, &initiator_task_tag);
+	io = iscsi_outstanding_add(is, request, NULL, &initiator_task_tag);
 	if (io == NULL) {
 		icl_pdu_free(request);
 		ccb->ccb_h.status = CAM_RESRC_UNAVAIL;
@@ -2152,7 +2153,7 @@ iscsi_action_scsiio(struct iscsi_session
 	}
 
 	initiator_task_tag = is->is_initiator_task_tag++;
-	io = iscsi_outstanding_add(is, ccb, &initiator_task_tag);
+	io = iscsi_outstanding_add(is, request, ccb, &initiator_task_tag);
 	if (io == NULL) {
 		icl_pdu_free(request);
 		if ((ccb->ccb_h.status & CAM_DEV_QFRZN) == 0) {


More information about the svn-src-head mailing list