Lines Matching refs:ddp
164 struct i40e_fcoe_ddp *ddp) in i40e_fcoe_ddp_unmap() argument
166 if (test_and_set_bit(__I40E_FCOE_DDP_UNMAPPED, &ddp->flags)) in i40e_fcoe_ddp_unmap()
169 if (ddp->sgl) { in i40e_fcoe_ddp_unmap()
170 dma_unmap_sg(&pf->pdev->dev, ddp->sgl, ddp->sgc, in i40e_fcoe_ddp_unmap()
172 ddp->sgl = NULL; in i40e_fcoe_ddp_unmap()
173 ddp->sgc = 0; in i40e_fcoe_ddp_unmap()
176 if (ddp->pool) { in i40e_fcoe_ddp_unmap()
177 dma_pool_free(ddp->pool, ddp->udl, ddp->udp); in i40e_fcoe_ddp_unmap()
178 ddp->pool = NULL; in i40e_fcoe_ddp_unmap()
186 static inline void i40e_fcoe_ddp_clear(struct i40e_fcoe_ddp *ddp) in i40e_fcoe_ddp_clear() argument
188 memset(ddp, 0, sizeof(struct i40e_fcoe_ddp)); in i40e_fcoe_ddp_clear()
189 ddp->xid = FC_XID_UNKNOWN; in i40e_fcoe_ddp_clear()
190 ddp->flags = __I40E_FCOE_DDP_NONE; in i40e_fcoe_ddp_clear()
260 struct i40e_fcoe_ddp *ddp = &fcoe->ddp[xid]; in i40e_fcoe_ddp_put() local
262 if (!fcoe || !ddp) in i40e_fcoe_ddp_put()
265 if (test_bit(__I40E_FCOE_DDP_DONE, &ddp->flags)) in i40e_fcoe_ddp_put()
266 len = ddp->len; in i40e_fcoe_ddp_put()
267 i40e_fcoe_ddp_unmap(pf, ddp); in i40e_fcoe_ddp_put()
602 i40e_fcoe_ddp_clear(&fcoe->ddp[i]); in i40e_fcoe_setup_ddp_resources()
624 struct i40e_fcoe_ddp *ddp; in i40e_fcoe_handle_status() local
639 ddp = &fcoe->ddp[xid]; in i40e_fcoe_handle_status()
640 WARN_ON(xid != ddp->xid); in i40e_fcoe_handle_status()
650 xid, ddp->xid); in i40e_fcoe_handle_status()
651 ddp->prerr |= I40E_RX_PROG_FCOE_ERROR_TBL_FULL_BIT; in i40e_fcoe_handle_status()
655 xid, ddp->xid); in i40e_fcoe_handle_status()
656 ddp->prerr |= I40E_RX_PROG_FCOE_ERROR_CONFLICT_BIT; in i40e_fcoe_handle_status()
664 xid, ddp->xid); in i40e_fcoe_handle_status()
665 ddp->prerr |= I40E_RX_PROG_FCOE_ERROR_INVLFAIL_BIT; in i40e_fcoe_handle_status()
668 clear_bit(__I40E_FCOE_DDP_ABORTED, &ddp->flags); in i40e_fcoe_handle_status()
672 i40e_fcoe_ddp_unmap(pf, ddp); in i40e_fcoe_handle_status()
673 i40e_fcoe_ddp_clear(ddp); in i40e_fcoe_handle_status()
696 struct i40e_fcoe_ddp *ddp = NULL; in i40e_fcoe_handle_offload() local
739 ddp = &fcoe->ddp[xid]; in i40e_fcoe_handle_offload()
740 if (!ddp->sgl) in i40e_fcoe_handle_offload()
745 if (ddp->xid != xid) { in i40e_fcoe_handle_offload()
747 ddp->xid, xid); in i40e_fcoe_handle_offload()
752 if (ddp->fcerr) { in i40e_fcoe_handle_offload()
754 xid, ddp->fcerr, fcerr); in i40e_fcoe_handle_offload()
759 ddp->len = le32_to_cpu(rx_desc->wb.qword0.hi_dword.fcoe_param); in i40e_fcoe_handle_offload()
760 ddp->fcerr = fcerr; in i40e_fcoe_handle_offload()
786 i40e_fcoe_ddp_unmap(pf, ddp); in i40e_fcoe_handle_offload()
787 if (ddp->len && !ddp->fcerr) { in i40e_fcoe_handle_offload()
790 rc = ddp->len; in i40e_fcoe_handle_offload()
791 i40e_fcoe_ddp_clear(ddp); in i40e_fcoe_handle_offload()
792 ddp->len = rc; in i40e_fcoe_handle_offload()
798 set_bit(__I40E_FCOE_DDP_DONE, &ddp->flags); in i40e_fcoe_handle_offload()
825 struct i40e_fcoe_ddp *ddp; in i40e_fcoe_ddp_setup() local
846 ddp = &fcoe->ddp[xid]; in i40e_fcoe_ddp_setup()
847 if (ddp->sgl) { in i40e_fcoe_ddp_setup()
849 xid, ddp->sgl, ddp->sgc); in i40e_fcoe_ddp_setup()
852 i40e_fcoe_ddp_clear(ddp); in i40e_fcoe_ddp_setup()
874 ddp->udl = dma_pool_alloc(ddp_pool->pool, GFP_ATOMIC, &ddp->udp); in i40e_fcoe_ddp_setup()
875 if (!ddp->udl) { in i40e_fcoe_ddp_setup()
882 ddp->len = 0; in i40e_fcoe_ddp_setup()
886 ddp->len += len; in i40e_fcoe_ddp_setup()
913 ddp->udl[j] = (u64)(addr - thisoff); in i40e_fcoe_ddp_setup()
923 ddp->lastsize = thisoff + thislen; in i40e_fcoe_ddp_setup()
924 ddp->firstoff = firstoff; in i40e_fcoe_ddp_setup()
925 ddp->list_len = j; in i40e_fcoe_ddp_setup()
926 ddp->pool = ddp_pool->pool; in i40e_fcoe_ddp_setup()
927 ddp->sgl = sgl; in i40e_fcoe_ddp_setup()
928 ddp->sgc = sgc; in i40e_fcoe_ddp_setup()
929 ddp->xid = xid; in i40e_fcoe_ddp_setup()
931 set_bit(__I40E_FCOE_DDP_TARGET, &ddp->flags); in i40e_fcoe_ddp_setup()
932 set_bit(__I40E_FCOE_DDP_INITALIZED, &ddp->flags); in i40e_fcoe_ddp_setup()
938 dma_pool_free(ddp->pool, ddp->udl, ddp->udp); in i40e_fcoe_ddp_setup()
939 i40e_fcoe_ddp_clear(ddp); in i40e_fcoe_ddp_setup()
1007 struct i40e_fcoe_ddp *ddp, u8 sof) in i40e_fcoe_program_ddp() argument
1019 if (test_bit(__I40E_FCOE_DDP_ABORTED, &ddp->flags)) { in i40e_fcoe_program_ddp()
1022 ddp->xid, ddp->flags); in i40e_fcoe_program_ddp()
1027 if (test_and_set_bit(__I40E_FCOE_DDP_PROGRAMMED, &ddp->flags)) { in i40e_fcoe_program_ddp()
1030 ddp->xid, ddp->flags); in i40e_fcoe_program_ddp()
1044 ((u64)ddp->firstoff << in i40e_fcoe_program_ddp()
1046 ((u64)ddp->lastsize << in i40e_fcoe_program_ddp()
1051 target_mode = test_bit(__I40E_FCOE_DDP_TARGET, &ddp->flags); in i40e_fcoe_program_ddp()
1060 queue_desc->dmaindx_fbase = cpu_to_le64(ddp->xid | ((u64)ddp->udp)); in i40e_fcoe_program_ddp()
1061 queue_desc->flen_tph = cpu_to_le64(ddp->list_len | in i40e_fcoe_program_ddp()
1075 filter_desc->rsvd_dmaindx = cpu_to_le16(ddp->xid << in i40e_fcoe_program_ddp()
1105 struct i40e_fcoe_ddp *ddp) in i40e_fcoe_invalidate_ddp() argument
1110 if (test_and_set_bit(__I40E_FCOE_DDP_ABORTED, &ddp->flags)) in i40e_fcoe_invalidate_ddp()
1149 struct i40e_fcoe_ddp *ddp; in i40e_fcoe_handle_ddp() local
1157 ddp = NULL; in i40e_fcoe_handle_ddp()
1163 ddp = &fcoe->ddp[xid]; in i40e_fcoe_handle_ddp()
1164 if ((ddp->xid == xid) && in i40e_fcoe_handle_ddp()
1165 (test_bit(__I40E_FCOE_DDP_TARGET, &ddp->flags))) in i40e_fcoe_handle_ddp()
1166 i40e_fcoe_program_ddp(tx_ring, skb, ddp, sof); in i40e_fcoe_handle_ddp()
1172 ddp = &fcoe->ddp[xid]; in i40e_fcoe_handle_ddp()
1173 if ((ddp->xid == xid) && in i40e_fcoe_handle_ddp()
1174 (!test_bit(__I40E_FCOE_DDP_TARGET, &ddp->flags))) in i40e_fcoe_handle_ddp()
1175 i40e_fcoe_program_ddp(tx_ring, skb, ddp, sof); in i40e_fcoe_handle_ddp()
1181 ddp = &fcoe->ddp[xid]; in i40e_fcoe_handle_ddp()
1182 if ((ddp->xid == xid) && in i40e_fcoe_handle_ddp()
1183 (!test_bit(__I40E_FCOE_DDP_TARGET, &ddp->flags))) in i40e_fcoe_handle_ddp()
1184 i40e_fcoe_invalidate_ddp(tx_ring, skb, ddp); in i40e_fcoe_handle_ddp()