Lines Matching refs:agg
1389 r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags);
1559 struct rx_agg *agg; in read_bulk_callback() local
1563 agg = urb->context; in read_bulk_callback()
1564 if (!agg) in read_bulk_callback()
1567 tp = agg->context; in read_bulk_callback()
1592 list_add_tail(&agg->list, &tp->rx_done); in read_bulk_callback()
1612 r8152_submit_rx(tp, agg, GFP_ATOMIC); in read_bulk_callback()
1619 struct tx_agg *agg; in write_bulk_callback() local
1624 agg = urb->context; in write_bulk_callback()
1625 if (!agg) in write_bulk_callback()
1628 tp = agg->context; in write_bulk_callback()
1637 stats->tx_errors += agg->skb_num; in write_bulk_callback()
1639 stats->tx_packets += agg->skb_num; in write_bulk_callback()
1640 stats->tx_bytes += agg->skb_len; in write_bulk_callback()
1644 list_add_tail(&agg->list, &tp->tx_free); in write_bulk_callback()
1737 static void free_rx_agg(struct r8152 *tp, struct rx_agg *agg) in free_rx_agg() argument
1739 list_del(&agg->info_list); in free_rx_agg()
1741 usb_free_urb(agg->urb); in free_rx_agg()
1742 put_page(agg->page); in free_rx_agg()
1743 kfree(agg); in free_rx_agg()
1791 struct rx_agg *agg, *agg_next; in free_all_mem() local
1797 list_for_each_entry_safe(agg, agg_next, &tp->rx_info, info_list) in free_all_mem()
1798 free_rx_agg(tp, agg); in free_all_mem()
1897 struct tx_agg *agg = NULL; in r8152_get_tx_agg() local
1909 agg = list_entry(cursor, struct tx_agg, list); in r8152_get_tx_agg()
1913 return agg; in r8152_get_tx_agg()
2061 static int r8152_tx_agg_fill(struct r8152 *tp, struct tx_agg *agg) in r8152_tx_agg_fill() argument
2072 tx_data = agg->head; in r8152_tx_agg_fill()
2073 agg->skb_num = 0; in r8152_tx_agg_fill()
2074 agg->skb_len = 0; in r8152_tx_agg_fill()
2119 agg->skb_len += len; in r8152_tx_agg_fill()
2120 agg->skb_num += skb_shinfo(skb)->gso_segs ?: 1; in r8152_tx_agg_fill()
2124 remain = agg_buf_sz - (int)(tx_agg_align(tx_data) - agg->head); in r8152_tx_agg_fill()
2148 usb_fill_bulk_urb(agg->urb, tp->udev, usb_sndbulkpipe(tp->udev, 2), in r8152_tx_agg_fill()
2149 agg->head, (int)(tx_data - (u8 *)agg->head), in r8152_tx_agg_fill()
2150 (usb_complete_t)write_bulk_callback, agg); in r8152_tx_agg_fill()
2152 ret = usb_submit_urb(agg->urb, GFP_ATOMIC); in r8152_tx_agg_fill()
2194 static inline int agg_offset(struct rx_agg *agg, void *addr) in agg_offset() argument
2196 return (int)(addr - agg->buffer); in agg_offset()
2201 struct rx_agg *agg, *agg_next, *agg_free = NULL; in rtl_get_free_rx() local
2206 list_for_each_entry_safe(agg, agg_next, &tp->rx_used, list) { in rtl_get_free_rx()
2207 if (page_count(agg->page) == 1) { in rtl_get_free_rx()
2209 list_del_init(&agg->list); in rtl_get_free_rx()
2210 agg_free = agg; in rtl_get_free_rx()
2214 list_del_init(&agg->list); in rtl_get_free_rx()
2215 free_rx_agg(tp, agg); in rtl_get_free_rx()
2264 struct rx_agg *agg, *agg_free; in rx_bottom() local
2271 agg = list_entry(cursor, struct rx_agg, list); in rx_bottom()
2272 urb = agg->urb; in rx_bottom()
2278 rx_desc = agg->buffer; in rx_bottom()
2279 rx_data = agg->buffer; in rx_bottom()
2320 skb_add_rx_frag(skb, 0, agg->page, in rx_bottom()
2321 agg_offset(agg, rx_data), in rx_bottom()
2324 get_page(agg->page); in rx_bottom()
2341 len_used = agg_offset(agg, rx_data); in rx_bottom()
2345 WARN_ON(!agg_free && page_count(agg->page) > 1); in rx_bottom()
2349 if (page_count(agg->page) == 1) { in rx_bottom()
2352 list_add_tail(&agg->list, &tp->rx_used); in rx_bottom()
2353 agg = agg_free; in rx_bottom()
2354 urb = agg->urb; in rx_bottom()
2361 ret = r8152_submit_rx(tp, agg, GFP_ATOMIC); in rx_bottom()
2364 list_add_tail(&agg->list, next); in rx_bottom()
2384 struct tx_agg *agg; in tx_bottom() local
2389 agg = r8152_get_tx_agg(tp); in tx_bottom()
2390 if (!agg) in tx_bottom()
2393 res = r8152_tx_agg_fill(tp, agg); in tx_bottom()
2406 stats->tx_dropped += agg->skb_num; in tx_bottom()
2409 list_add_tail(&agg->list, &tp->tx_free); in tx_bottom()
2456 int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags) in r8152_submit_rx() argument
2465 usb_fill_bulk_urb(agg->urb, tp->udev, usb_rcvbulkpipe(tp->udev, 1), in r8152_submit_rx()
2466 agg->buffer, tp->rx_buf_sz, in r8152_submit_rx()
2467 (usb_complete_t)read_bulk_callback, agg); in r8152_submit_rx()
2469 ret = usb_submit_urb(agg->urb, mem_flags); in r8152_submit_rx()
2474 struct urb *urb = agg->urb; in r8152_submit_rx()
2479 list_add_tail(&agg->list, &tp->rx_done); in r8152_submit_rx()
2483 "Couldn't submit rx[%p], ret = %d\n", agg, ret); in r8152_submit_rx()
2683 struct rx_agg *agg, *agg_next; in rtl_start_rx() local
2699 list_for_each_entry_safe(agg, agg_next, &tmp_list, info_list) { in rtl_start_rx()
2700 INIT_LIST_HEAD(&agg->list); in rtl_start_rx()
2705 list_add_tail(&agg->list, &tp->rx_used); in rtl_start_rx()
2709 list_add_tail(&agg->list, &tp->rx_done); in rtl_start_rx()
2712 ret = r8152_submit_rx(tp, agg, GFP_KERNEL); in rtl_start_rx()
2726 struct rx_agg *agg, *agg_next; in rtl_stop_rx() local
2742 list_for_each_entry_safe(agg, agg_next, &tmp_list, info_list) { in rtl_stop_rx()
2746 if (page_count(agg->page) > 1) in rtl_stop_rx()
2747 free_rx_agg(tp, agg); in rtl_stop_rx()
2749 usb_kill_urb(agg->urb); in rtl_stop_rx()