|
@@ -461,6 +461,7 @@ static int __ixgbe_notify_dca(struct device *dev, void *data)
|
|
|
**/
|
|
|
static void ixgbe_receive_skb(struct ixgbe_q_vector *q_vector,
|
|
|
struct sk_buff *skb, u8 status,
|
|
|
+ struct ixgbe_ring *ring,
|
|
|
union ixgbe_adv_rx_desc *rx_desc)
|
|
|
{
|
|
|
struct ixgbe_adapter *adapter = q_vector->adapter;
|
|
@@ -468,7 +469,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->v_idx);
|
|
|
+ skb_record_rx_queue(skb, ring->queue_index);
|
|
|
if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL)) {
|
|
|
if (adapter->vlgrp && is_vlan && (tag != 0))
|
|
|
vlan_gro_receive(napi, adapter->vlgrp, tag, skb);
|
|
@@ -782,7 +783,7 @@ static bool ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
|
|
|
total_rx_packets++;
|
|
|
|
|
|
skb->protocol = eth_type_trans(skb, adapter->netdev);
|
|
|
- ixgbe_receive_skb(q_vector, skb, staterr, rx_desc);
|
|
|
+ ixgbe_receive_skb(q_vector, skb, staterr, rx_ring, rx_desc);
|
|
|
|
|
|
next_desc:
|
|
|
rx_desc->wb.upper.status_error = 0;
|