From 4625a220cc607f25287a0d6697d89bfed666abf3 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 29 Jan 2013 23:33:14 +0000 Subject: [PATCH] --- yaml --- r: 368199 b: refs/heads/master c: ff734ef4bca05fd5cd51b83d2e2a9f008b64f9a3 h: refs/heads/master i: 368197: a78b4f5c6ec70ac8473e4534680b7381e21208ec 368195: 0bba801b7dddf11280c19678b69d1165113c9b4a 368191: e432360ff7f31f82da84844e573c32bfa1e4f208 v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/sfc/efx.c | 6 +----- trunk/drivers/net/ethernet/sfc/efx.h | 7 +++++++ trunk/drivers/net/ethernet/sfc/rx.c | 3 +-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 0b4c923f3357..0c39a286edb9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9bc2fc9b5272cc888fb10d5839f7188fa0bfdc90 +refs/heads/master: ff734ef4bca05fd5cd51b83d2e2a9f008b64f9a3 diff --git a/trunk/drivers/net/ethernet/sfc/efx.c b/trunk/drivers/net/ethernet/sfc/efx.c index 34b56ec87fba..f8013c3ea37c 100644 --- a/trunk/drivers/net/ethernet/sfc/efx.c +++ b/trunk/drivers/net/ethernet/sfc/efx.c @@ -250,11 +250,7 @@ static int efx_process_channel(struct efx_channel *channel, int budget) struct efx_rx_queue *rx_queue = efx_channel_get_rx_queue(channel); - /* Deliver last RX packet. */ - if (channel->rx_pkt) { - __efx_rx_packet(channel, channel->rx_pkt); - channel->rx_pkt = NULL; - } + efx_rx_flush_packet(channel); if (rx_queue->enabled) efx_fast_push_rx_descriptors(rx_queue); } diff --git a/trunk/drivers/net/ethernet/sfc/efx.h b/trunk/drivers/net/ethernet/sfc/efx.h index 64c555e493be..00e7077fa1d8 100644 --- a/trunk/drivers/net/ethernet/sfc/efx.h +++ b/trunk/drivers/net/ethernet/sfc/efx.h @@ -43,6 +43,13 @@ extern void __efx_rx_packet(struct efx_channel *channel, struct efx_rx_buffer *rx_buf); extern void efx_rx_packet(struct efx_rx_queue *rx_queue, unsigned int index, unsigned int len, u16 flags); +static inline void efx_rx_flush_packet(struct efx_channel *channel) +{ + if (channel->rx_pkt) { + __efx_rx_packet(channel, channel->rx_pkt); + channel->rx_pkt = NULL; + } +} extern void efx_schedule_slow_fill(struct efx_rx_queue *rx_queue); #define EFX_MAX_DMAQ_SIZE 4096UL diff --git a/trunk/drivers/net/ethernet/sfc/rx.c b/trunk/drivers/net/ethernet/sfc/rx.c index 31361db28f91..60f4eb7cebc6 100644 --- a/trunk/drivers/net/ethernet/sfc/rx.c +++ b/trunk/drivers/net/ethernet/sfc/rx.c @@ -465,8 +465,7 @@ void efx_rx_packet(struct efx_rx_queue *rx_queue, unsigned int index, */ rx_buf->len = len - efx->type->rx_buffer_hash_size; out: - if (channel->rx_pkt) - __efx_rx_packet(channel, channel->rx_pkt); + efx_rx_flush_packet(channel); channel->rx_pkt = rx_buf; }