Lines Matching refs:gl

1361  *	@gl: source internal packet gather list
1368 const struct pkt_gl *gl,
1374 __skb_fill_page_desc(skb, 0, gl->frags[0].page,
1375 gl->frags[0].offset + offset,
1376 gl->frags[0].size - offset);
1377 skb_shinfo(skb)->nr_frags = gl->nfrags;
1378 for (i = 1; i < gl->nfrags; i++)
1379 __skb_fill_page_desc(skb, i, gl->frags[i].page,
1380 gl->frags[i].offset,
1381 gl->frags[i].size);
1384 get_page(gl->frags[gl->nfrags - 1].page);
1389 * @gl: the gather list
1396 struct sk_buff *t4vf_pktgl_to_skb(const struct pkt_gl *gl,
1412 if (gl->tot_len <= RX_COPY_THRES) {
1414 skb = alloc_skb(gl->tot_len, GFP_ATOMIC);
1417 __skb_put(skb, gl->tot_len);
1418 skb_copy_to_linear_data(skb, gl->va, gl->tot_len);
1424 skb_copy_to_linear_data(skb, gl->va, pull_len);
1426 copy_frags(skb, gl, pull_len);
1427 skb->len = gl->tot_len;
1438 * @gl: the gather list
1443 void t4vf_pktgl_free(const struct pkt_gl *gl)
1447 frag = gl->nfrags - 1;
1449 put_page(gl->frags[frag].page);
1455 * @gl: gather list for ingress packet
1461 static void do_gro(struct sge_eth_rxq *rxq, const struct pkt_gl *gl,
1469 t4vf_pktgl_free(gl);
1474 copy_frags(skb, gl, PKTSHIFT);
1475 skb->len = gl->tot_len - PKTSHIFT;
1497 * @gl: the gather list of packet fragments
1502 const struct pkt_gl *gl)
1516 do_gro(rxq, gl, pkt);
1523 skb = t4vf_pktgl_to_skb(gl, RX_SKB_LEN, RX_PULL_LEN);
1525 t4vf_pktgl_free(gl);
1573 * @gl: the packet gather list
1591 static void restore_rx_bufs(const struct pkt_gl *gl, struct sge_fl *fl,
1602 sdesc->page = gl->frags[frags].page;
1658 struct pkt_gl gl;
1680 gl.tot_len = len;
1685 for (frag = 0, fp = gl.frags; /**/; frag++, fp++) {
1698 gl.nfrags = frag+1;
1708 gl.va = (page_address(gl.frags[0].page) +
1709 gl.frags[0].offset);
1710 prefetch(gl.va);
1716 ret = rspq->handler(rspq, rspq->cur_desc, &gl);
1720 restore_rx_bufs(&gl, &rxq->fl, frag);