pdu_cb 72 drivers/target/iscsi/cxgbit/cxgbit.h void *pdu_cb; pdu_cb 104 drivers/target/iscsi/cxgbit/cxgbit.h #define cxgbit_rx_pdu_cb(skb) (CXGBIT_SKB_CB(skb)->rx.pdu_cb) pdu_cb 166 drivers/target/iscsi/cxgbit/cxgbit_main.c cxgbit_process_ddpvld(struct cxgbit_sock *csk, struct cxgbit_lro_pdu_cb *pdu_cb, pdu_cb 172 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->flags |= PDUCBF_RX_HCRC_ERR; pdu_cb 177 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->flags |= PDUCBF_RX_DCRC_ERR; pdu_cb 184 drivers/target/iscsi/cxgbit/cxgbit_main.c (!(pdu_cb->flags & PDUCBF_RX_DATA))) { pdu_cb 185 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->flags |= PDUCBF_RX_DATA_DDPD; pdu_cb 193 drivers/target/iscsi/cxgbit/cxgbit_main.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_skb_lro_pdu_cb(skb, pdu_cb 197 drivers/target/iscsi/cxgbit/cxgbit_main.c cxgbit_process_ddpvld(lro_cb->csk, pdu_cb, be32_to_cpu(cpl->ddpvld)); pdu_cb 199 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->flags |= PDUCBF_RX_STATUS; pdu_cb 200 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->ddigest = ntohl(cpl->ulp_crc); pdu_cb 201 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->pdulen = ntohs(cpl->len); pdu_cb 203 drivers/target/iscsi/cxgbit/cxgbit_main.c if (pdu_cb->flags & PDUCBF_RX_HDR) pdu_cb 204 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->complete = true; pdu_cb 206 drivers/target/iscsi/cxgbit/cxgbit_main.c lro_cb->pdu_totallen += pdu_cb->pdulen; pdu_cb 238 drivers/target/iscsi/cxgbit/cxgbit_main.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_skb_lro_pdu_cb(skb, pdu_cb 246 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->flags |= PDUCBF_RX_HDR; pdu_cb 247 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->seq = ntohl(cpl->seq); pdu_cb 249 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->hdr = gl->va + offset; pdu_cb 250 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->hlen = len; pdu_cb 251 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->hfrag_idx = skb_shinfo(skb)->nr_frags; pdu_cb 261 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->flags |= PDUCBF_RX_DATA; pdu_cb 263 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->dlen = len; pdu_cb 264 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->doffset = lro_cb->offset; pdu_cb 265 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->nr_dfrags = gl->nfrags; pdu_cb 266 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->dfrag_idx = skb_shinfo(skb)->nr_frags; pdu_cb 273 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->flags |= (PDUCBF_RX_HDR | PDUCBF_RX_STATUS); pdu_cb 275 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->hdr = gl->va + offset; pdu_cb 276 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->hlen = len; pdu_cb 277 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->hfrag_idx = skb_shinfo(skb)->nr_frags; pdu_cb 278 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->ddigest = be32_to_cpu(cpl->ulp_crc); pdu_cb 279 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->pdulen = ntohs(cpl->len); pdu_cb 284 drivers/target/iscsi/cxgbit/cxgbit_main.c cxgbit_process_ddpvld(lro_cb->csk, pdu_cb, pdu_cb 287 drivers/target/iscsi/cxgbit/cxgbit_main.c if (pdu_cb->flags & PDUCBF_RX_DATA_DDPD) { pdu_cb 288 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->flags |= PDUCBF_RX_DDP_CMP; pdu_cb 289 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->complete = true; pdu_cb 290 drivers/target/iscsi/cxgbit/cxgbit_main.c } else if (pdu_cb->flags & PDUCBF_RX_DATA) { pdu_cb 291 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->complete = true; pdu_cb 294 drivers/target/iscsi/cxgbit/cxgbit_main.c lro_cb->pdu_totallen += pdu_cb->hlen + pdu_cb->dlen; pdu_cb 301 drivers/target/iscsi/cxgbit/cxgbit_main.c pdu_cb->frags += gl->nfrags; pdu_cb 834 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_rx_pdu_cb(skb); pdu_cb 836 drivers/target/iscsi/cxgbit/cxgbit_target.c skb_prepare_seq_read(skb, pdu_cb->doffset, pdu_cb 837 drivers/target/iscsi/cxgbit/cxgbit_target.c pdu_cb->doffset + pdu_cb->dlen, pdu_cb 878 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_rx_pdu_cb(csk->skb); pdu_cb 880 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_DCRC_ERR) { pdu_cb 899 drivers/target/iscsi/cxgbit/cxgbit_target.c skb_frag_t *dfrag = &ssi->frags[pdu_cb->dfrag_idx]; pdu_cb 912 drivers/target/iscsi/cxgbit/cxgbit_target.c u32 sg_nents = max(1UL, DIV_ROUND_UP(pdu_cb->dlen, PAGE_SIZE)); pdu_cb 917 drivers/target/iscsi/cxgbit/cxgbit_target.c cmd->write_data_done += pdu_cb->dlen; pdu_cb 987 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_rx_pdu_cb(csk->skb); pdu_cb 988 drivers/target/iscsi/cxgbit/cxgbit_target.c struct iscsi_scsi_req *hdr = (struct iscsi_scsi_req *)pdu_cb->hdr; pdu_cb 996 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->dlen && (pdu_cb->dlen == cmd->se_cmd.data_length) && pdu_cb 997 drivers/target/iscsi/cxgbit/cxgbit_target.c (pdu_cb->nr_dfrags == 1)) pdu_cb 1006 drivers/target/iscsi/cxgbit/cxgbit_target.c if (!pdu_cb->dlen) pdu_cb 1017 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_rx_pdu_cb(csk->skb); pdu_cb 1018 drivers/target/iscsi/cxgbit/cxgbit_target.c struct iscsi_data *hdr = (struct iscsi_data *)pdu_cb->hdr; pdu_cb 1020 drivers/target/iscsi/cxgbit/cxgbit_target.c u32 data_len = pdu_cb->dlen; pdu_cb 1024 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_DDP_CMP) { pdu_cb 1055 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_DCRC_ERR) { pdu_cb 1070 drivers/target/iscsi/cxgbit/cxgbit_target.c if (!(pdu_cb->flags & PDUCBF_RX_DATA_DDPD)) { pdu_cb 1092 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_rx_pdu_cb(csk->skb); pdu_cb 1093 drivers/target/iscsi/cxgbit/cxgbit_target.c struct iscsi_nopout *hdr = (struct iscsi_nopout *)pdu_cb->hdr; pdu_cb 1095 drivers/target/iscsi/cxgbit/cxgbit_target.c u32 payload_length = pdu_cb->dlen; pdu_cb 1102 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_DCRC_ERR) { pdu_cb 1134 drivers/target/iscsi/cxgbit/cxgbit_target.c skb_copy_bits(csk->skb, pdu_cb->doffset, pdu_cb 1160 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_rx_pdu_cb(csk->skb); pdu_cb 1161 drivers/target/iscsi/cxgbit/cxgbit_target.c struct iscsi_text *hdr = (struct iscsi_text *)pdu_cb->hdr; pdu_cb 1162 drivers/target/iscsi/cxgbit/cxgbit_target.c u32 payload_length = pdu_cb->dlen; pdu_cb 1170 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_DCRC_ERR) { pdu_cb 1195 drivers/target/iscsi/cxgbit/cxgbit_target.c skb_copy_bits(csk->skb, pdu_cb->doffset, pdu_cb 1207 drivers/target/iscsi/cxgbit/cxgbit_target.c pdu_cb->hdr); pdu_cb 1212 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_rx_pdu_cb(csk->skb); pdu_cb 1213 drivers/target/iscsi/cxgbit/cxgbit_target.c struct iscsi_hdr *hdr = (struct iscsi_hdr *)pdu_cb->hdr; pdu_cb 1290 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_rx_pdu_cb(csk->skb); pdu_cb 1292 drivers/target/iscsi/cxgbit/cxgbit_target.c struct iscsi_hdr *hdr = pdu_cb->hdr; pdu_cb 1295 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_HCRC_ERR) { pdu_cb 1328 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_rx_pdu_cb(csk->skb); pdu_cb 1332 drivers/target/iscsi/cxgbit/cxgbit_target.c memcpy(login_req, pdu_cb->hdr, sizeof(*login_req)); pdu_cb 1337 drivers/target/iscsi/cxgbit/cxgbit_target.c login_req->exp_statsn, login_req->cid, pdu_cb->dlen); pdu_cb 1361 drivers/target/iscsi/cxgbit/cxgbit_target.c skb_copy_bits(csk->skb, pdu_cb->doffset, login->req_buf, pdu_cb->dlen); pdu_cb 1369 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_skb_lro_pdu_cb(skb, idx); pdu_cb 1372 drivers/target/iscsi/cxgbit/cxgbit_target.c cxgbit_rx_pdu_cb(skb) = pdu_cb; pdu_cb 1390 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_skb_lro_pdu_cb(skb, 0); pdu_cb 1399 drivers/target/iscsi/cxgbit/cxgbit_target.c for (i = 0; i < lro_cb->pdu_idx; i++, pdu_cb++) pdu_cb 1402 drivers/target/iscsi/cxgbit/cxgbit_target.c skb, i, pdu_cb->pdulen, pdu_cb->flags, pdu_cb->seq, pdu_cb 1403 drivers/target/iscsi/cxgbit/cxgbit_target.c pdu_cb->ddigest, pdu_cb->frags); pdu_cb 1430 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_skb_lro_pdu_cb(skb, pdu_idx); pdu_cb 1435 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_HDR) { pdu_cb 1438 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->flags |= pdu_cb->flags; pdu_cb 1439 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->seq = pdu_cb->seq; pdu_cb 1440 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->hdr = pdu_cb->hdr; pdu_cb 1441 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->hlen = pdu_cb->hlen; pdu_cb 1443 drivers/target/iscsi/cxgbit/cxgbit_target.c memcpy(&hssi->frags[hfrag_idx], &ssi->frags[pdu_cb->hfrag_idx], pdu_cb 1457 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_DATA) { pdu_cb 1460 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->flags |= pdu_cb->flags; pdu_cb 1464 drivers/target/iscsi/cxgbit/cxgbit_target.c for (i = 0; i < pdu_cb->nr_dfrags; dfrag_idx++, i++) { pdu_cb 1466 drivers/target/iscsi/cxgbit/cxgbit_target.c &ssi->frags[pdu_cb->dfrag_idx + i], pdu_cb 1477 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->dlen = pdu_cb->dlen; pdu_cb 1479 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->nr_dfrags = pdu_cb->nr_dfrags; pdu_cb 1485 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_STATUS) { pdu_cb 1486 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->flags |= pdu_cb->flags; pdu_cb 1491 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->ddigest = pdu_cb->ddigest; pdu_cb 1492 drivers/target/iscsi/cxgbit/cxgbit_target.c hpdu_cb->pdulen = pdu_cb->pdulen; pdu_cb 1499 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_skb_lro_pdu_cb(skb, 0); pdu_cb 1503 drivers/target/iscsi/cxgbit/cxgbit_target.c if (!pdu_cb->complete) { pdu_cb 1506 drivers/target/iscsi/cxgbit/cxgbit_target.c if (pdu_cb->flags & PDUCBF_RX_STATUS) { pdu_cb 1539 drivers/target/iscsi/cxgbit/cxgbit_target.c struct cxgbit_lro_pdu_cb *pdu_cb = cxgbit_skb_lro_pdu_cb(skb, 0); pdu_cb 1542 drivers/target/iscsi/cxgbit/cxgbit_target.c if ((pdu_cb->flags & PDUCBF_RX_HDR) && pdu_cb 1543 drivers/target/iscsi/cxgbit/cxgbit_target.c (pdu_cb->seq != csk->rcv_nxt)) { pdu_cb 1545 drivers/target/iscsi/cxgbit/cxgbit_target.c csk, csk->tid, pdu_cb->seq, csk->rcv_nxt);