diff options
author | Eliezer Tamir <eliezer.tamir@linux.intel.com> | 2013-06-10 04:40:20 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-11 00:22:36 -0400 |
commit | 5a85e737f30ce7b939a34d93cca816400342208c (patch) | |
tree | 6b1b3d2970b60c8733a3f5e253fb463e1f6d9f0f /drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | |
parent | d30e383bb856f614ddb5bbbb5a7d3f86240e41ec (diff) |
ixgbe: add support for ndo_ll_poll
Add the ixgbe driver code implementing ndo_ll_poll.
Adds ndo_ll_poll method and locking between it and the napi poll.
When receiving a packet we use skb_mark_ll to record the napi it came from.
Add each napi to the napi_hash right after netif_napi_add().
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Eliezer Tamir <eliezer.tamir@linux.intel.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c')
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c index ef5f7a678ce1..90b4e1089ecc 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | |||
@@ -811,6 +811,7 @@ static int ixgbe_alloc_q_vector(struct ixgbe_adapter *adapter, | |||
811 | /* initialize NAPI */ | 811 | /* initialize NAPI */ |
812 | netif_napi_add(adapter->netdev, &q_vector->napi, | 812 | netif_napi_add(adapter->netdev, &q_vector->napi, |
813 | ixgbe_poll, 64); | 813 | ixgbe_poll, 64); |
814 | napi_hash_add(&q_vector->napi); | ||
814 | 815 | ||
815 | /* tie q_vector and adapter together */ | 816 | /* tie q_vector and adapter together */ |
816 | adapter->q_vector[v_idx] = q_vector; | 817 | adapter->q_vector[v_idx] = q_vector; |
@@ -931,6 +932,7 @@ static void ixgbe_free_q_vector(struct ixgbe_adapter *adapter, int v_idx) | |||
931 | adapter->rx_ring[ring->queue_index] = NULL; | 932 | adapter->rx_ring[ring->queue_index] = NULL; |
932 | 933 | ||
933 | adapter->q_vector[v_idx] = NULL; | 934 | adapter->q_vector[v_idx] = NULL; |
935 | napi_hash_del(&q_vector->napi); | ||
934 | netif_napi_del(&q_vector->napi); | 936 | netif_napi_del(&q_vector->napi); |
935 | 937 | ||
936 | /* | 938 | /* |