Lines Matching refs:rx_queue

2588 efx_ef10_build_rx_desc(struct efx_rx_queue *rx_queue, unsigned int index)
2593 rxd = efx_rx_desc(rx_queue, index);
2594 rx_buf = efx_rx_buffer(rx_queue, index);
2600 static void efx_ef10_rx_write(struct efx_rx_queue *rx_queue)
2602 struct efx_nic *efx = rx_queue->efx;
2607 write_count = rx_queue->added_count & ~7;
2608 if (rx_queue->notified_count == write_count)
2613 rx_queue,
2614 rx_queue->notified_count & rx_queue->ptr_mask);
2615 while (++rx_queue->notified_count != write_count);
2619 write_count & rx_queue->ptr_mask);
2621 efx_rx_queue_index(rx_queue));
2626 static void efx_ef10_rx_defer_refill(struct efx_rx_queue *rx_queue)
2628 struct efx_channel *channel = efx_rx_queue_channel(rx_queue);
2671 static void efx_ef10_handle_rx_wrong_queue(struct efx_rx_queue *rx_queue,
2674 struct efx_nic *efx = rx_queue->efx;
2678 efx_rx_queue_index(rx_queue), rx_queue_label);
2684 efx_ef10_handle_rx_bad_lbits(struct efx_rx_queue *rx_queue,
2687 unsigned int dropped = (actual - expected) & rx_queue->ptr_mask;
2688 struct efx_nic *efx = rx_queue->efx;
2698 static void efx_ef10_handle_rx_abort(struct efx_rx_queue *rx_queue)
2702 netif_dbg(rx_queue->efx, hw, rx_queue->efx->net_dev,
2704 rx_queue->scatter_n);
2706 rx_desc_ptr = rx_queue->removed_count & rx_queue->ptr_mask;
2708 efx_rx_packet(rx_queue, rx_desc_ptr, rx_queue->scatter_n,
2711 rx_queue->removed_count += rx_queue->scatter_n;
2712 rx_queue->scatter_n = 0;
2713 rx_queue->scatter_len = 0;
2714 ++efx_rx_queue_channel(rx_queue)->n_rx_nodesc_trunc;
2816 struct efx_rx_queue *rx_queue;
2842 rx_queue = efx_channel_get_rx_queue(channel);
2844 if (unlikely(rx_queue_label != efx_rx_queue_index(rx_queue)))
2845 efx_ef10_handle_rx_wrong_queue(rx_queue, rx_queue_label);
2847 n_descs = ((next_ptr_lbits - rx_queue->removed_count) &
2850 if (n_descs != rx_queue->scatter_n + 1) {
2854 if (unlikely(n_descs == rx_queue->scatter_n)) {
2855 if (rx_queue->scatter_n == 0 || rx_bytes != 0)
2859 rx_queue->scatter_n,
2861 efx_ef10_handle_rx_abort(rx_queue);
2871 rx_queue->scatter_n != 0 || rx_cont) {
2873 rx_queue, next_ptr_lbits,
2874 (rx_queue->removed_count +
2875 rx_queue->scatter_n + 1) &
2881 rx_queue->scatter_n = 1;
2882 rx_queue->scatter_len = 0;
2888 ++rx_queue->scatter_n;
2889 rx_queue->scatter_len += rx_bytes;
2936 efx_rx_packet(rx_queue,
2937 rx_queue->removed_count & rx_queue->ptr_mask,
2938 rx_queue->scatter_n, rx_queue->scatter_len,
2940 rx_queue->removed_count += rx_queue->scatter_n;
2943 rx_queue->scatter_n = 0;
2944 rx_queue->scatter_len = 0;
3084 efx_fast_push_rx_descriptors(&channel->rx_queue, true);