Lines Matching defs:gl

1363  *	@gl: source internal packet gather list
1370 const struct pkt_gl *gl,
1376 __skb_fill_page_desc(skb, 0, gl->frags[0].page,
1377 gl->frags[0].offset + offset,
1378 gl->frags[0].size - offset);
1379 skb_shinfo(skb)->nr_frags = gl->nfrags;
1380 for (i = 1; i < gl->nfrags; i++)
1381 __skb_fill_page_desc(skb, i, gl->frags[i].page,
1382 gl->frags[i].offset,
1383 gl->frags[i].size);
1386 get_page(gl->frags[gl->nfrags - 1].page);
1391 * @gl: the gather list
1398 static struct sk_buff *t4vf_pktgl_to_skb(const struct pkt_gl *gl,
1415 if (gl->tot_len <= RX_COPY_THRES) {
1417 skb = alloc_skb(gl->tot_len, GFP_ATOMIC);
1420 __skb_put(skb, gl->tot_len);
1421 skb_copy_to_linear_data(skb, gl->va, gl->tot_len);
1427 skb_copy_to_linear_data(skb, gl->va, pull_len);
1429 copy_frags(skb, gl, pull_len);
1430 skb->len = gl->tot_len;
1441 * @gl: the gather list
1446 static void t4vf_pktgl_free(const struct pkt_gl *gl)
1450 frag = gl->nfrags - 1;
1452 put_page(gl->frags[frag].page);
1458 * @gl: gather list for ingress packet
1464 static void do_gro(struct sge_eth_rxq *rxq, const struct pkt_gl *gl,
1474 t4vf_pktgl_free(gl);
1479 copy_frags(skb, gl, s->pktshift);
1480 skb->len = gl->tot_len - s->pktshift;
1505 * @gl: the gather list of packet fragments
1510 const struct pkt_gl *gl)
1527 do_gro(rxq, gl, pkt);
1534 skb = t4vf_pktgl_to_skb(gl, RX_SKB_LEN, RX_PULL_LEN);
1536 t4vf_pktgl_free(gl);
1584 * @gl: the packet gather list
1602 static void restore_rx_bufs(const struct pkt_gl *gl, struct sge_fl *fl,
1613 sdesc->page = gl->frags[frags].page;
1671 struct pkt_gl gl;
1693 gl.tot_len = len;
1698 for (frag = 0, fp = gl.frags; /**/; frag++, fp++) {
1711 gl.nfrags = frag+1;
1721 gl.va = (page_address(gl.frags[0].page) +
1722 gl.frags[0].offset);
1723 prefetch(gl.va);
1729 ret = rspq->handler(rspq, rspq->cur_desc, &gl);
1733 restore_rx_bufs(&gl, &rxq->fl, frag);