Lines Matching defs:gl

1267 			struct cxgbi_gather_list *gl, unsigned int gidx)
1273 ppod->addr[i] = gidx < gl->nelem ?
1274 cpu_to_be64(gl->phys_addr[gidx]) : 0ULL;
1288 struct cxgbi_gather_list *gl)
1308 ddp->gl_map[k] = gl;
1330 struct cxgbi_gather_list *gl)
1334 for (i = 0; i < gl->nelem; i++)
1335 dma_unmap_page(&pdev->dev, gl->phys_addr[i], PAGE_SIZE,
1340 struct cxgbi_gather_list *gl)
1344 for (i = 0; i < gl->nelem; i++) {
1345 gl->phys_addr[i] = dma_map_page(&pdev->dev, gl->pages[i], 0,
1348 if (unlikely(dma_mapping_error(&pdev->dev, gl->phys_addr[i]))) {
1351 i, gl->pages[i], pdev);
1358 unsigned int nelem = gl->nelem;
1360 gl->nelem = i;
1361 ddp_gl_unmap(pdev, gl);
1362 gl->nelem = nelem;
1367 static void ddp_release_gl(struct cxgbi_gather_list *gl,
1370 ddp_gl_unmap(pdev, gl);
1371 kfree(gl);
1380 struct cxgbi_gather_list *gl;
1396 gl = kzalloc(sizeof(struct cxgbi_gather_list) +
1399 if (!gl) {
1406 "xfer %u, sgl %u, gl max %u.\n", xferlen, sgcnt, npages);
1408 gl->pages = (struct page **)&gl->phys_addr[npages];
1409 gl->nelem = npages;
1410 gl->length = xferlen;
1411 gl->offset = sgoffset;
1412 gl->pages[0] = sgpage;
1434 if (j == gl->nelem || sg->offset) {
1437 j, gl->nelem, sg->offset);
1440 gl->pages[j] = page;
1446 gl->nelem = ++j;
1448 if (ddp_gl_map(pdev, gl) < 0)
1451 return gl;
1454 kfree(gl);
1466 struct cxgbi_gather_list *gl = ddp->gl_map[idx];
1469 if (!gl || !gl->nelem) {
1470 pr_warn("tag 0x%x, idx %u, gl 0x%p, %u.\n",
1471 tag, idx, gl, gl ? gl->nelem : 0);
1474 npods = (gl->nelem + PPOD_PAGES_MAX - 1) >> PPOD_PAGES_SHIFT;
1480 ddp_release_gl(gl, ddp->pdev);
1486 u32 sw_tag, u32 *tagp, struct cxgbi_gather_list *gl,
1498 npods = (gl->nelem + PPOD_PAGES_MAX - 1) >> PPOD_PAGES_SHIFT;
1501 npods, gl);
1505 gl);
1509 npods, gl);
1514 "xferlen %u, gl %u, npods %u NO DDP.\n",
1515 gl->length, gl->nelem, npods);
1525 hdr.max_offset = htonl(gl->length);
1526 hdr.page_offset = htonl(gl->offset);
1528 err = cdev->csk_ddp_set(csk, &hdr, idx, npods, gl);
1534 "xfer %u, gl %u,%u, tid 0x%x, tag 0x%x->0x%x(%u,%u).\n",
1535 gl->length, gl->nelem, gl->offset, tid, sw_tag, tag, idx,
1551 struct cxgbi_gather_list *gl;
1567 gl = ddp_make_gl(xferlen, sgl, sgcnt, cdev->pdev, gfp);
1568 if (!gl)
1571 err = ddp_tag_reserve(csk, csk->tid, sw_tag, tagp, gl, gfp);
1573 ddp_release_gl(gl, cdev->pdev);
1589 struct cxgbi_gather_list *gl = ddp->gl_map[i];
1591 if (gl) {
1592 int npods = (gl->nelem + PPOD_PAGES_MAX - 1)
1595 kfree(gl);