sfc: Record RX queue number on GRO path
authorBen Hutchings <bhutchings@solarflare.com>
Mon, 23 Nov 2009 16:02:40 +0000 (16:02 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Nov 2009 18:58:33 +0000 (10:58 -0800)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sfc/rx.c

index 9e33391db3557442bd87d96b48146f2b2b48f9a0..9f22d15d3d50e5913a7d8c2f3986f9d53c1d6f53 100644 (file)
@@ -473,6 +473,8 @@ static void efx_rx_packet_lro(struct efx_channel *channel,
                skb->ip_summed =
                        checksummed ? CHECKSUM_UNNECESSARY : CHECKSUM_NONE;
 
+               skb_record_rx_queue(skb, channel->channel);
+
                gro_result = napi_gro_frags(napi);
        } else {
                struct sk_buff *skb = rx_buf->skb;
@@ -578,6 +580,8 @@ void __efx_rx_packet(struct efx_channel *channel,
                 * at the ethernet header */
                rx_buf->skb->protocol = eth_type_trans(rx_buf->skb,
                                                       efx->net_dev);
+
+               skb_record_rx_queue(rx_buf->skb, channel->channel);
        }
 
        if (likely(checksummed || rx_buf->page)) {
@@ -593,8 +597,6 @@ void __efx_rx_packet(struct efx_channel *channel,
        /* Set the SKB flags */
        skb->ip_summed = CHECKSUM_NONE;
 
-       skb_record_rx_queue(skb, channel->channel);
-
        /* Pass the packet up */
        netif_receive_skb(skb);