Lines Matching refs:agg
1554 r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags);
1737 struct rx_agg *agg; in read_bulk_callback() local
1741 agg = urb->context; in read_bulk_callback()
1742 if (!agg) in read_bulk_callback()
1745 tp = agg->context; in read_bulk_callback()
1770 list_add_tail(&agg->list, &tp->rx_done); in read_bulk_callback()
1781 list_add_tail(&agg->list, &tp->rx_done); in read_bulk_callback()
1798 r8152_submit_rx(tp, agg, GFP_ATOMIC); in read_bulk_callback()
1805 struct tx_agg *agg; in write_bulk_callback() local
1810 agg = urb->context; in write_bulk_callback()
1811 if (!agg) in write_bulk_callback()
1814 tp = agg->context; in write_bulk_callback()
1823 stats->tx_errors += agg->skb_num; in write_bulk_callback()
1825 stats->tx_packets += agg->skb_num; in write_bulk_callback()
1826 stats->tx_bytes += agg->skb_len; in write_bulk_callback()
1830 list_add_tail(&agg->list, &tp->tx_free); in write_bulk_callback()
1923 static void free_rx_agg(struct r8152 *tp, struct rx_agg *agg) in free_rx_agg() argument
1925 list_del(&agg->info_list); in free_rx_agg()
1927 usb_free_urb(agg->urb); in free_rx_agg()
1928 put_page(agg->page); in free_rx_agg()
1929 kfree(agg); in free_rx_agg()
1977 struct rx_agg *agg, *agg_next; in free_all_mem() local
1983 list_for_each_entry_safe(agg, agg_next, &tp->rx_info, info_list) in free_all_mem()
1984 free_rx_agg(tp, agg); in free_all_mem()
2083 struct tx_agg *agg = NULL; in r8152_get_tx_agg() local
2095 agg = list_entry(cursor, struct tx_agg, list); in r8152_get_tx_agg()
2099 return agg; in r8152_get_tx_agg()
2250 static int r8152_tx_agg_fill(struct r8152 *tp, struct tx_agg *agg) in r8152_tx_agg_fill() argument
2261 tx_data = agg->head; in r8152_tx_agg_fill()
2262 agg->skb_num = 0; in r8152_tx_agg_fill()
2263 agg->skb_len = 0; in r8152_tx_agg_fill()
2305 agg->skb_len += len; in r8152_tx_agg_fill()
2306 agg->skb_num += skb_shinfo(skb)->gso_segs ?: 1; in r8152_tx_agg_fill()
2310 remain = agg_buf_sz - (int)(tx_agg_align(tx_data) - agg->head); in r8152_tx_agg_fill()
2334 usb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_out, in r8152_tx_agg_fill()
2335 agg->head, (int)(tx_data - (u8 *)agg->head), in r8152_tx_agg_fill()
2336 (usb_complete_t)write_bulk_callback, agg); in r8152_tx_agg_fill()
2338 ret = usb_submit_urb(agg->urb, GFP_ATOMIC); in r8152_tx_agg_fill()
2380 static inline int agg_offset(struct rx_agg *agg, void *addr) in agg_offset() argument
2382 return (int)(addr - agg->buffer); in agg_offset()
2387 struct rx_agg *agg, *agg_next, *agg_free = NULL; in rtl_get_free_rx() local
2392 list_for_each_entry_safe(agg, agg_next, &tp->rx_used, list) { in rtl_get_free_rx()
2393 if (page_count(agg->page) == 1) { in rtl_get_free_rx()
2395 list_del_init(&agg->list); in rtl_get_free_rx()
2396 agg_free = agg; in rtl_get_free_rx()
2400 list_del_init(&agg->list); in rtl_get_free_rx()
2401 free_rx_agg(tp, agg); in rtl_get_free_rx()
2451 struct rx_agg *agg, *agg_free; in rx_bottom() local
2458 agg = list_entry(cursor, struct rx_agg, list); in rx_bottom()
2459 urb = agg->urb; in rx_bottom()
2465 rx_desc = agg->buffer; in rx_bottom()
2466 rx_data = agg->buffer; in rx_bottom()
2507 skb_add_rx_frag(skb, 0, agg->page, in rx_bottom()
2508 agg_offset(agg, rx_data), in rx_bottom()
2511 get_page(agg->page); in rx_bottom()
2528 len_used = agg_offset(agg, rx_data); in rx_bottom()
2532 WARN_ON(!agg_free && page_count(agg->page) > 1); in rx_bottom()
2536 if (page_count(agg->page) == 1) { in rx_bottom()
2539 list_add_tail(&agg->list, &tp->rx_used); in rx_bottom()
2540 agg = agg_free; in rx_bottom()
2541 urb = agg->urb; in rx_bottom()
2548 ret = r8152_submit_rx(tp, agg, GFP_ATOMIC); in rx_bottom()
2551 list_add_tail(&agg->list, next); in rx_bottom()
2571 struct tx_agg *agg; in tx_bottom() local
2576 agg = r8152_get_tx_agg(tp); in tx_bottom()
2577 if (!agg) in tx_bottom()
2580 res = r8152_tx_agg_fill(tp, agg); in tx_bottom()
2593 stats->tx_dropped += agg->skb_num; in tx_bottom()
2596 list_add_tail(&agg->list, &tp->tx_free); in tx_bottom()
2641 int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags) in r8152_submit_rx() argument
2650 usb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_in, in r8152_submit_rx()
2651 agg->buffer, tp->rx_buf_sz, in r8152_submit_rx()
2652 (usb_complete_t)read_bulk_callback, agg); in r8152_submit_rx()
2654 ret = usb_submit_urb(agg->urb, mem_flags); in r8152_submit_rx()
2659 struct urb *urb = agg->urb; in r8152_submit_rx()
2664 list_add_tail(&agg->list, &tp->rx_done); in r8152_submit_rx()
2668 "Couldn't submit rx[%p], ret = %d\n", agg, ret); in r8152_submit_rx()
2905 struct rx_agg *agg, *agg_next; in rtl_start_rx() local
2921 list_for_each_entry_safe(agg, agg_next, &tmp_list, info_list) { in rtl_start_rx()
2922 INIT_LIST_HEAD(&agg->list); in rtl_start_rx()
2927 list_add_tail(&agg->list, &tp->rx_used); in rtl_start_rx()
2931 list_add_tail(&agg->list, &tp->rx_done); in rtl_start_rx()
2934 ret = r8152_submit_rx(tp, agg, GFP_KERNEL); in rtl_start_rx()
2948 struct rx_agg *agg, *agg_next; in rtl_stop_rx() local
2964 list_for_each_entry_safe(agg, agg_next, &tmp_list, info_list) { in rtl_stop_rx()
2968 if (page_count(agg->page) > 1) in rtl_stop_rx()
2969 free_rx_agg(tp, agg); in rtl_stop_rx()
2971 usb_kill_urb(agg->urb); in rtl_stop_rx()