net: Add skb_record_rx_queue() calls to multiqueue capable drivers.
authorDavid S. Miller <davem@davemloft.net>
Wed, 28 Jan 2009 00:22:32 +0000 (16:22 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Jan 2009 00:22:32 +0000 (16:22 -0800)
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2.c
drivers/net/bnx2x_main.c
drivers/net/cxgb3/sge.c
drivers/net/igb/igb_main.c
drivers/net/ixgbe/ixgbe_main.c
drivers/net/mlx4/en_rx.c
drivers/net/myri10ge/myri10ge.c
drivers/net/niu.c
drivers/net/qlge/qlge_main.c
drivers/net/s2io.c
drivers/net/sfc/rx.c

index fe575b9a9b73d7ce8d5d9a1130667947449408c8..49e0e51a9dfc5655bbaaab14b3ca6096ed7445cb 100644 (file)
@@ -3007,6 +3007,8 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
                                skb->ip_summed = CHECKSUM_UNNECESSARY;
                }
 
+               skb_record_rx_queue(skb, bnapi - &bp->bnx2_napi[0]);
+
 #ifdef BCM_VLAN
                if (hw_vlan)
                        vlan_hwaccel_receive_skb(skb, bp->vlgrp, vtag);
index 71f81c79d638642fb462834ca565732e1711ebc2..88da14c141f451c609963e492fb54c721eee38b7 100644 (file)
@@ -1325,6 +1325,7 @@ static void bnx2x_tpa_stop(struct bnx2x *bp, struct bnx2x_fastpath *fp,
 
                skb->protocol = eth_type_trans(skb, bp->dev);
                skb->ip_summed = CHECKSUM_UNNECESSARY;
+               skb_record_rx_queue(skb, queue);
 
                {
                        struct iphdr *iph;
index 8299fb538f25b4852523ad3870adce6524b4c88d..272a0168f3e9ffb32d3f4c2b40529e3a1d1c38bc 100644 (file)
@@ -1937,6 +1937,7 @@ static void rx_eth(struct adapter *adap, struct sge_rspq *rq,
                skb->ip_summed = CHECKSUM_UNNECESSARY;
        } else
                skb->ip_summed = CHECKSUM_NONE;
+       skb_record_rx_queue(skb, qs - &adap->sge.qs[0]);
 
        if (unlikely(p->vlan_valid)) {
                struct vlan_group *grp = pi->vlan_grp;
index e11043d90dbdeee4e001e2aa16fe0b568632fdb5..bd166803671d366133fc775067fc08d1402ed7f8 100644 (file)
@@ -3751,6 +3751,7 @@ static void igb_receive_skb(struct igb_ring *ring, u8 status,
        struct igb_adapter * adapter = ring->adapter;
        bool vlan_extracted = (adapter->vlgrp && (status & E1000_RXD_STAT_VP));
 
+       skb_record_rx_queue(skb, ring->queue_index);
        if (skb->ip_summed == CHECKSUM_UNNECESSARY) {
                if (vlan_extracted)
                        vlan_gro_receive(&ring->napi, adapter->vlgrp,
index 43980dc45e3e9b0e775d7bd443fd5cb1e87bad67..fe4a4d17c4bc8aa425f625233480a8f8ff8f406c 100644 (file)
@@ -414,6 +414,7 @@ static void ixgbe_receive_skb(struct ixgbe_q_vector *q_vector,
        bool is_vlan = (status & IXGBE_RXD_STAT_VP);
        u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan);
 
+       skb_record_rx_queue(skb, q_vector - &adapter->q_vector[0]);
        if (skb->ip_summed == CHECKSUM_UNNECESSARY) {
                if (adapter->vlgrp && is_vlan && (tag != 0))
                        vlan_gro_receive(napi, adapter->vlgrp, tag, skb);
index ac55ebd2f14637d68894993489b8aa4d107b4ade..a4130e764991a79e77a30395c685a2ac5088188e 100644 (file)
@@ -768,6 +768,7 @@ int mlx4_en_process_rx_cq(struct net_device *dev, struct mlx4_en_cq *cq, int bud
 
                skb->ip_summed = ip_summed;
                skb->protocol = eth_type_trans(skb, dev);
+               skb_record_rx_queue(skb, cq->ring);
 
                /* Push it up the stack */
                if (priv->vlgrp && (be32_to_cpu(cqe->vlan_my_qpn) &
index 2dacb8852dc368c48b1685ca8207d0239970e97c..aea9fdaa3cd50db7e9ba983bf7174f0b302eb0f1 100644 (file)
@@ -1324,6 +1324,7 @@ myri10ge_rx_done(struct myri10ge_slice_state *ss, struct myri10ge_rx_buf *rx,
                skb_shinfo(skb)->nr_frags = 0;
        }
        skb->protocol = eth_type_trans(skb, dev);
+       skb_record_rx_queue(skb, ss - &mgp->ss[0]);
 
        if (mgp->csum_flag) {
                if ((skb->protocol == htons(ETH_P_IP)) ||
index 4a5a089fa301943c1977264abb9f9cface6c0516..2346ca6bf5baa8a748b24e987f521e395cb76ab4 100644 (file)
@@ -3390,6 +3390,7 @@ static int niu_process_rx_pkt(struct niu *np, struct rx_ring_info *rp)
        rp->rx_bytes += skb->len;
 
        skb->protocol = eth_type_trans(skb, np->dev);
+       skb_record_rx_queue(skb, rp->rx_channel);
        netif_receive_skb(skb);
 
        return num_rcr;
index 16eb9dd8528666060e5b95a854afcbf5e57241a2..4ab6e72ea95c3be59075933cd988710928422eae 100644 (file)
@@ -1436,6 +1436,7 @@ static void ql_process_mac_rx_intr(struct ql_adapter *qdev,
        qdev->stats.rx_packets++;
        qdev->stats.rx_bytes += skb->len;
        skb->protocol = eth_type_trans(skb, ndev);
+       skb_record_rx_queue(skb, rx_ring - &qdev->rx_ring[0]);
        if (qdev->vlgrp && (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_V)) {
                QPRINTK(qdev, RX_STATUS, DEBUG,
                        "Passing a VLAN packet upstream.\n");
index 2a96a10fd0cffc1b91e091e6a888b2a200e380eb..e0a353f4ec921073b5b3ec10ba01d4bd8850b7c4 100644 (file)
@@ -7542,6 +7542,7 @@ static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp)
 
        sp->mac_control.stats_info->sw_stat.mem_freed += skb->truesize;
 send_up:
+       skb_record_rx_queue(skb, ring_no);
        queue_rx_frame(skb, RXD_GET_VLAN_TAG(rxdp->Control_2));
 aggregate:
        sp->mac_control.rings[ring_no].rx_bufs_left -= 1;
index a0345b380979be4929a577547868da3f55da0fe0..66d7fe3db3e6e74cc6c2c137226121828bb5577d 100644 (file)
@@ -575,6 +575,8 @@ 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);