Lines Matching refs:agg
1550 r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags);
1733 struct rx_agg *agg; in read_bulk_callback() local
1737 agg = urb->context; in read_bulk_callback()
1738 if (!agg) in read_bulk_callback()
1741 tp = agg->context; in read_bulk_callback()
1766 list_add_tail(&agg->list, &tp->rx_done); in read_bulk_callback()
1777 list_add_tail(&agg->list, &tp->rx_done); in read_bulk_callback()
1794 r8152_submit_rx(tp, agg, GFP_ATOMIC); in read_bulk_callback()
1801 struct tx_agg *agg; in write_bulk_callback() local
1806 agg = urb->context; in write_bulk_callback()
1807 if (!agg) in write_bulk_callback()
1810 tp = agg->context; in write_bulk_callback()
1819 stats->tx_errors += agg->skb_num; in write_bulk_callback()
1821 stats->tx_packets += agg->skb_num; in write_bulk_callback()
1822 stats->tx_bytes += agg->skb_len; in write_bulk_callback()
1826 list_add_tail(&agg->list, &tp->tx_free); in write_bulk_callback()
1917 static void free_rx_agg(struct r8152 *tp, struct rx_agg *agg) in free_rx_agg() argument
1919 list_del(&agg->info_list); in free_rx_agg()
1921 usb_free_urb(agg->urb); in free_rx_agg()
1922 put_page(agg->page); in free_rx_agg()
1923 kfree(agg); in free_rx_agg()
1971 struct rx_agg *agg, *agg_next; in free_all_mem() local
1977 list_for_each_entry_safe(agg, agg_next, &tp->rx_info, info_list) in free_all_mem()
1978 free_rx_agg(tp, agg); in free_all_mem()
2077 struct tx_agg *agg = NULL; in r8152_get_tx_agg() local
2089 agg = list_entry(cursor, struct tx_agg, list); in r8152_get_tx_agg()
2093 return agg; in r8152_get_tx_agg()
2241 static int r8152_tx_agg_fill(struct r8152 *tp, struct tx_agg *agg) in r8152_tx_agg_fill() argument
2252 tx_data = agg->head; in r8152_tx_agg_fill()
2253 agg->skb_num = 0; in r8152_tx_agg_fill()
2254 agg->skb_len = 0; in r8152_tx_agg_fill()
2299 agg->skb_len += len; in r8152_tx_agg_fill()
2300 agg->skb_num += skb_shinfo(skb)->gso_segs ?: 1; in r8152_tx_agg_fill()
2304 remain = agg_buf_sz - (int)(tx_agg_align(tx_data) - agg->head); in r8152_tx_agg_fill()
2328 usb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_out, in r8152_tx_agg_fill()
2329 agg->head, (int)(tx_data - (u8 *)agg->head), in r8152_tx_agg_fill()
2330 (usb_complete_t)write_bulk_callback, agg); in r8152_tx_agg_fill()
2332 ret = usb_submit_urb(agg->urb, GFP_ATOMIC); in r8152_tx_agg_fill()
2374 static inline int agg_offset(struct rx_agg *agg, void *addr) in agg_offset() argument
2376 return (int)(addr - agg->buffer); in agg_offset()
2381 struct rx_agg *agg, *agg_next, *agg_free = NULL; in rtl_get_free_rx() local
2386 list_for_each_entry_safe(agg, agg_next, &tp->rx_used, list) { in rtl_get_free_rx()
2387 if (page_count(agg->page) == 1) { in rtl_get_free_rx()
2389 list_del_init(&agg->list); in rtl_get_free_rx()
2390 agg_free = agg; in rtl_get_free_rx()
2394 list_del_init(&agg->list); in rtl_get_free_rx()
2395 free_rx_agg(tp, agg); in rtl_get_free_rx()
2445 struct rx_agg *agg, *agg_free; in rx_bottom() local
2452 agg = list_entry(cursor, struct rx_agg, list); in rx_bottom()
2453 urb = agg->urb; in rx_bottom()
2459 rx_desc = agg->buffer; in rx_bottom()
2460 rx_data = agg->buffer; in rx_bottom()
2501 skb_add_rx_frag(skb, 0, agg->page, in rx_bottom()
2502 agg_offset(agg, rx_data), in rx_bottom()
2505 get_page(agg->page); in rx_bottom()
2522 len_used = agg_offset(agg, rx_data); in rx_bottom()
2526 WARN_ON(!agg_free && page_count(agg->page) > 1); in rx_bottom()
2530 if (page_count(agg->page) == 1) { in rx_bottom()
2533 list_add_tail(&agg->list, &tp->rx_used); in rx_bottom()
2534 agg = agg_free; in rx_bottom()
2535 urb = agg->urb; in rx_bottom()
2542 ret = r8152_submit_rx(tp, agg, GFP_ATOMIC); in rx_bottom()
2545 list_add_tail(&agg->list, next); in rx_bottom()
2565 struct tx_agg *agg; in tx_bottom() local
2570 agg = r8152_get_tx_agg(tp); in tx_bottom()
2571 if (!agg) in tx_bottom()
2574 res = r8152_tx_agg_fill(tp, agg); in tx_bottom()
2587 stats->tx_dropped += agg->skb_num; in tx_bottom()
2590 list_add_tail(&agg->list, &tp->tx_free); in tx_bottom()
2635 int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags) in r8152_submit_rx() argument
2644 usb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_in, in r8152_submit_rx()
2645 agg->buffer, tp->rx_buf_sz, in r8152_submit_rx()
2646 (usb_complete_t)read_bulk_callback, agg); in r8152_submit_rx()
2648 ret = usb_submit_urb(agg->urb, mem_flags); in r8152_submit_rx()
2653 struct urb *urb = agg->urb; in r8152_submit_rx()
2658 list_add_tail(&agg->list, &tp->rx_done); in r8152_submit_rx()
2662 "Couldn't submit rx[%p], ret = %d\n", agg, ret); in r8152_submit_rx()
2895 struct rx_agg *agg, *agg_next; in rtl_start_rx() local
2911 list_for_each_entry_safe(agg, agg_next, &tmp_list, info_list) { in rtl_start_rx()
2912 INIT_LIST_HEAD(&agg->list); in rtl_start_rx()
2917 list_add_tail(&agg->list, &tp->rx_used); in rtl_start_rx()
2921 list_add_tail(&agg->list, &tp->rx_done); in rtl_start_rx()
2924 ret = r8152_submit_rx(tp, agg, GFP_KERNEL); in rtl_start_rx()
2938 struct rx_agg *agg, *agg_next; in rtl_stop_rx() local
2954 list_for_each_entry_safe(agg, agg_next, &tmp_list, info_list) { in rtl_stop_rx()
2958 if (page_count(agg->page) > 1) in rtl_stop_rx()
2959 free_rx_agg(tp, agg); in rtl_stop_rx()
2961 usb_kill_urb(agg->urb); in rtl_stop_rx()