diff --git a/sys/cam/ctl/ctl_frontend_iscsi.c b/sys/cam/ctl/ctl_frontend_iscsi.c --- a/sys/cam/ctl/ctl_frontend_iscsi.c +++ b/sys/cam/ctl/ctl_frontend_iscsi.c @@ -1083,8 +1083,8 @@ return (NULL); } - error = icl_conn_transfer_setup(cs->cs_conn, io, target_transfer_tagp, - &cdw->cdw_icl_prv); + error = icl_conn_transfer_setup(cs->cs_conn, PRIV_REQUEST(io), io, + target_transfer_tagp, &cdw->cdw_icl_prv); if (error != 0) { CFISCSI_SESSION_WARN(cs, "icl_conn_transfer_setup() failed with error %d", error); diff --git a/sys/dev/cxgbe/cxgbei/icl_cxgbei.c b/sys/dev/cxgbe/cxgbei/icl_cxgbei.c --- a/sys/dev/cxgbe/cxgbei/icl_cxgbei.c +++ b/sys/dev/cxgbe/cxgbei/icl_cxgbei.c @@ -1197,13 +1197,11 @@ return (true); } -/* XXXNP: PDU should be passed in as parameter, like on the initiator. */ -#define io_to_request_pdu(io) ((io)->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptr) #define io_to_ddp_state(io) ((io)->io_hdr.ctl_private[CTL_PRIV_FRONTEND2].ptr) int -icl_cxgbei_conn_transfer_setup(struct icl_conn *ic, union ctl_io *io, - uint32_t *tttp, void **arg) +icl_cxgbei_conn_transfer_setup(struct icl_conn *ic, struct icl_pdu *ip, + union ctl_io *io, uint32_t *tttp, void **arg) { struct icl_cxgbei_conn *icc = ic_to_icc(ic); struct toepcb *toep = icc->toep; @@ -1226,7 +1224,6 @@ if (ctsio->ext_data_filled == 0) { int first_burst; - struct icl_pdu *ip = io_to_request_pdu(io); #ifdef INVARIANTS struct icl_cxgbei_pdu *icp = ip_to_icp(ip); diff --git a/sys/dev/iscsi/icl_conn_if.m b/sys/dev/iscsi/icl_conn_if.m --- a/sys/dev/iscsi/icl_conn_if.m +++ b/sys/dev/iscsi/icl_conn_if.m @@ -115,6 +115,7 @@ METHOD int transfer_setup { struct icl_conn *_ic; + struct icl_pdu *_ip; union ctl_io *_io; uint32_t *_transfer_tag; void **_prvp; diff --git a/sys/dev/iscsi/icl_soft.c b/sys/dev/iscsi/icl_soft.c --- a/sys/dev/iscsi/icl_soft.c +++ b/sys/dev/iscsi/icl_soft.c @@ -1463,8 +1463,8 @@ } int -icl_soft_conn_transfer_setup(struct icl_conn *ic, union ctl_io *io, - uint32_t *transfer_tag, void **prvp) +icl_soft_conn_transfer_setup(struct icl_conn *ic, struct icl_pdu *ip, + union ctl_io *io, uint32_t *transfer_tag, void **prvp) { return (0); diff --git a/sys/dev/iscsi/icl_wrappers.h b/sys/dev/iscsi/icl_wrappers.h --- a/sys/dev/iscsi/icl_wrappers.h +++ b/sys/dev/iscsi/icl_wrappers.h @@ -129,11 +129,11 @@ } static inline int -icl_conn_transfer_setup(struct icl_conn *ic, union ctl_io *io, - uint32_t *transfer_tagp, void **prvp) +icl_conn_transfer_setup(struct icl_conn *ic, struct icl_pdu *ip, + union ctl_io *io, uint32_t *transfer_tagp, void **prvp) { - return (ICL_CONN_TRANSFER_SETUP(ic, io, transfer_tagp, prvp)); + return (ICL_CONN_TRANSFER_SETUP(ic, ip, io, transfer_tagp, prvp)); } static inline void