Lines Matching refs:channel

244 static void efx_recycle_rx_page(struct efx_channel *channel,  in efx_recycle_rx_page()  argument
248 struct efx_rx_queue *rx_queue = efx_channel_get_rx_queue(channel); in efx_recycle_rx_page()
292 static void efx_recycle_rx_pages(struct efx_channel *channel, in efx_recycle_rx_pages() argument
296 struct efx_rx_queue *rx_queue = efx_channel_get_rx_queue(channel); in efx_recycle_rx_pages()
299 efx_recycle_rx_page(channel, rx_buf); in efx_recycle_rx_pages()
304 static void efx_discard_rx_packet(struct efx_channel *channel, in efx_discard_rx_packet() argument
308 struct efx_rx_queue *rx_queue = efx_channel_get_rx_queue(channel); in efx_discard_rx_packet()
310 efx_recycle_rx_pages(channel, rx_buf, n_frags); in efx_discard_rx_packet()
426 efx_rx_packet_gro(struct efx_channel *channel, struct efx_rx_buffer *rx_buf, in efx_rx_packet_gro() argument
429 struct napi_struct *napi = &channel->napi_str; in efx_rx_packet_gro()
431 struct efx_nic *efx = channel->efx; in efx_rx_packet_gro()
438 rx_queue = efx_channel_get_rx_queue(channel); in efx_rx_packet_gro()
458 rx_buf = efx_rx_buf_next(&channel->rx_queue, rx_buf); in efx_rx_packet_gro()
464 skb_record_rx_queue(skb, channel->rx_queue.core_index); in efx_rx_packet_gro()
466 skb_mark_napi_id(skb, &channel->napi_str); in efx_rx_packet_gro()
469 channel->irq_mod_score += 2; in efx_rx_packet_gro()
473 static struct sk_buff *efx_rx_mk_skb(struct efx_channel *channel, in efx_rx_mk_skb() argument
478 struct efx_nic *efx = channel->efx; in efx_rx_mk_skb()
512 rx_buf = efx_rx_buf_next(&channel->rx_queue, rx_buf); in efx_rx_mk_skb()
525 skb_mark_napi_id(skb, &channel->napi_str); in efx_rx_mk_skb()
534 struct efx_channel *channel = efx_rx_queue_channel(rx_queue); in efx_rx_packet() local
568 efx_rx_flush_packet(channel); in efx_rx_packet()
569 efx_discard_rx_packet(channel, rx_buf, n_frags); in efx_rx_packet()
607 efx_recycle_rx_pages(channel, rx_buf, n_frags); in efx_rx_packet()
612 efx_rx_flush_packet(channel); in efx_rx_packet()
613 channel->rx_pkt_n_frags = n_frags; in efx_rx_packet()
614 channel->rx_pkt_index = index; in efx_rx_packet()
617 static void efx_rx_deliver(struct efx_channel *channel, u8 *eh, in efx_rx_deliver() argument
624 skb = efx_rx_mk_skb(channel, rx_buf, n_frags, eh, hdr_len); in efx_rx_deliver()
628 rx_queue = efx_channel_get_rx_queue(channel); in efx_rx_deliver()
632 skb_record_rx_queue(skb, channel->rx_queue.core_index); in efx_rx_deliver()
639 efx_rx_skb_attach_timestamp(channel, skb); in efx_rx_deliver()
641 if (channel->type->receive_skb) in efx_rx_deliver()
642 if (channel->type->receive_skb(channel, skb)) in efx_rx_deliver()
650 void __efx_rx_packet(struct efx_channel *channel) in __efx_rx_packet() argument
652 struct efx_nic *efx = channel->efx; in __efx_rx_packet()
654 efx_rx_buffer(&channel->rx_queue, channel->rx_pkt_index); in __efx_rx_packet()
671 rx_queue = efx_channel_get_rx_queue(channel); in __efx_rx_packet()
673 channel->rx_pkt_n_frags); in __efx_rx_packet()
680 if ((rx_buf->flags & EFX_RX_PKT_TCP) && !channel->type->receive_skb && in __efx_rx_packet()
681 !efx_channel_busy_polling(channel)) in __efx_rx_packet()
682 efx_rx_packet_gro(channel, rx_buf, channel->rx_pkt_n_frags, eh); in __efx_rx_packet()
684 efx_rx_deliver(channel, eh, rx_buf, channel->rx_pkt_n_frags); in __efx_rx_packet()
686 channel->rx_pkt_n_frags = 0; in __efx_rx_packet()
844 struct efx_channel *channel; in efx_filter_rfs() local
917 channel = efx_get_channel(efx, skb_get_rx_queue(skb)); in efx_filter_rfs()
918 ++channel->rfs_filters_added; in efx_filter_rfs()