Lines Matching defs:agg

1661 r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags);
1844 struct rx_agg *agg;
1848 agg = urb->context;
1849 if (!agg)
1852 tp = agg->context;
1877 list_add_tail(&agg->list, &tp->rx_done);
1888 list_add_tail(&agg->list, &tp->rx_done);
1905 r8152_submit_rx(tp, agg, GFP_ATOMIC);
1912 struct tx_agg *agg;
1917 agg = urb->context;
1918 if (!agg)
1921 tp = agg->context;
1930 stats->tx_errors += agg->skb_num;
1932 stats->tx_packets += agg->skb_num;
1933 stats->tx_bytes += agg->skb_len;
1937 list_add_tail(&agg->list, &tp->tx_free);
2030 static void free_rx_agg(struct r8152 *tp, struct rx_agg *agg)
2032 list_del(&agg->info_list);
2034 usb_free_urb(agg->urb);
2035 put_page(agg->page);
2036 kfree(agg);
2084 struct rx_agg *agg, *agg_next;
2090 list_for_each_entry_safe(agg, agg_next, &tp->rx_info, info_list)
2091 free_rx_agg(tp, agg);
2190 struct tx_agg *agg = NULL;
2202 agg = list_entry(cursor, struct tx_agg, list);
2206 return agg;
2357 static int r8152_tx_agg_fill(struct r8152 *tp, struct tx_agg *agg)
2368 tx_data = agg->head;
2369 agg->skb_num = 0;
2370 agg->skb_len = 0;
2412 agg->skb_len += len;
2413 agg->skb_num += skb_shinfo(skb)->gso_segs ?: 1;
2417 remain = agg_buf_sz - (int)(tx_agg_align(tx_data) - agg->head);
2441 usb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_out,
2442 agg->head, (int)(tx_data - (u8 *)agg->head),
2443 (usb_complete_t)write_bulk_callback, agg);
2445 ret = usb_submit_urb(agg->urb, GFP_ATOMIC);
2487 static inline int agg_offset(struct rx_agg *agg, void *addr)
2489 return (int)(addr - agg->buffer);
2494 struct rx_agg *agg, *agg_next, *agg_free = NULL;
2499 list_for_each_entry_safe(agg, agg_next, &tp->rx_used, list) {
2500 if (page_count(agg->page) == 1) {
2502 list_del_init(&agg->list);
2503 agg_free = agg;
2507 list_del_init(&agg->list);
2508 free_rx_agg(tp, agg);
2558 struct rx_agg *agg, *agg_free;
2574 agg = list_entry(cursor, struct rx_agg, list);
2575 urb = agg->urb;
2581 rx_desc = agg->buffer;
2582 rx_data = agg->buffer;
2649 skb_add_rx_frag(skb, 0, agg->page,
2650 agg_offset(agg, rx_data),
2652 get_page(agg->page);
2675 len_used = agg_offset(agg, rx_data);
2679 WARN_ON(!agg_free && page_count(agg->page) > 1);
2683 if (page_count(agg->page) == 1) {
2686 list_add_tail(&agg->list, &tp->rx_used);
2687 agg = agg_free;
2688 urb = agg->urb;
2695 ret = r8152_submit_rx(tp, agg, GFP_ATOMIC);
2698 list_add_tail(&agg->list, next);
2719 struct tx_agg *agg;
2724 agg = r8152_get_tx_agg(tp);
2725 if (!agg)
2728 res = r8152_tx_agg_fill(tp, agg);
2741 stats->tx_dropped += agg->skb_num;
2744 list_add_tail(&agg->list, &tp->tx_free);
2792 int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags)
2801 usb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_in,
2802 agg->buffer, tp->rx_buf_sz,
2803 (usb_complete_t)read_bulk_callback, agg);
2805 ret = usb_submit_urb(agg->urb, mem_flags);
2810 struct urb *urb = agg->urb;
2815 list_add_tail(&agg->list, &tp->rx_done);
2819 "Couldn't submit rx[%p], ret = %d\n", agg, ret);
3058 struct rx_agg *agg, *agg_next;
3074 list_for_each_entry_safe(agg, agg_next, &tmp_list, info_list) {
3075 INIT_LIST_HEAD(&agg->list);
3080 list_add_tail(&agg->list, &tp->rx_used);
3084 list_add_tail(&agg->list, &tp->rx_done);
3087 ret = r8152_submit_rx(tp, agg, GFP_KERNEL);
3101 struct rx_agg *agg, *agg_next;
3117 list_for_each_entry_safe(agg, agg_next, &tmp_list, info_list) {
3121 if (page_count(agg->page) > 1)
3122 free_rx_agg(tp, agg);
3124 usb_kill_urb(agg->urb);