diff --git a/devices/igb/igb_main-3.18-ethercat.c b/devices/igb/igb_main-3.18-ethercat.c index 36f7bda5..44c41fa4 100644 --- a/devices/igb/igb_main-3.18-ethercat.c +++ b/devices/igb/igb_main-3.18-ethercat.c @@ -1047,10 +1047,7 @@ static void igb_reset_q_vector(struct igb_adapter *adapter, int v_idx) if (q_vector->rx.ring) adapter->tx_ring[q_vector->rx.ring->queue_index] = NULL; - if (!adapter->ecdev) { - netif_napi_del(&q_vector->napi); - } - + netif_napi_del(&q_vector->napi); } static void igb_reset_interrupt_capability(struct igb_adapter *adapter) @@ -1221,11 +1218,9 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter, if (!q_vector) return -ENOMEM; - if (!adapter->ecdev) { - /* initialize NAPI */ - netif_napi_add(adapter->netdev, &q_vector->napi, - igb_poll, 64); - } + /* initialize NAPI */ + netif_napi_add(adapter->netdev, &q_vector->napi, + igb_poll, 64); /* tie q_vector and adapter together */ adapter->q_vector[v_idx] = q_vector; @@ -6430,6 +6425,9 @@ static int igb_poll(struct napi_struct *napi, int budget) napi); bool clean_complete = true; + if (q_vector->adapter->ecdev) + return -EBUSY; + #ifdef CONFIG_IGB_DCA if (q_vector->adapter->flags & IGB_FLAG_DCA_ENABLED) igb_update_dca(q_vector); diff --git a/devices/igb/igb_main-4.19-ethercat.c b/devices/igb/igb_main-4.19-ethercat.c index a4169472..d49ae92e 100644 --- a/devices/igb/igb_main-4.19-ethercat.c +++ b/devices/igb/igb_main-4.19-ethercat.c @@ -1037,10 +1037,7 @@ static void igb_reset_q_vector(struct igb_adapter *adapter, int v_idx) if (q_vector->rx.ring) adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; - if (!adapter->ecdev) { - netif_napi_del(&q_vector->napi); - } - + netif_napi_del(&q_vector->napi); } static void igb_reset_interrupt_capability(struct igb_adapter *adapter) @@ -1219,11 +1216,9 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter, if (!q_vector) return -ENOMEM; - if (!adapter->ecdev) { - /* initialize NAPI */ - netif_napi_add(adapter->netdev, &q_vector->napi, - igb_poll, 64); - } + /* initialize NAPI */ + netif_napi_add(adapter->netdev, &q_vector->napi, + igb_poll, 64); /* tie q_vector and adapter together */ adapter->q_vector[v_idx] = q_vector; @@ -7858,6 +7853,9 @@ static int igb_poll(struct napi_struct *napi, int budget) bool clean_complete = true; int work_done = 0; + if (q_vector->adapter->ecdev) + return -EBUSY; + #ifdef CONFIG_IGB_DCA if (q_vector->adapter->flags & IGB_FLAG_DCA_ENABLED) igb_update_dca(q_vector); diff --git a/devices/igb/igb_main-4.4-ethercat.c b/devices/igb/igb_main-4.4-ethercat.c index 0d89fde9..c56686fa 100644 --- a/devices/igb/igb_main-4.4-ethercat.c +++ b/devices/igb/igb_main-4.4-ethercat.c @@ -1047,10 +1047,7 @@ static void igb_reset_q_vector(struct igb_adapter *adapter, int v_idx) if (q_vector->rx.ring) adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; - if (!adapter->ecdev) { - netif_napi_del(&q_vector->napi); - } - + netif_napi_del(&q_vector->napi); } static void igb_reset_interrupt_capability(struct igb_adapter *adapter) @@ -1227,11 +1224,9 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter, if (!q_vector) return -ENOMEM; - if (!adapter->ecdev) { - /* initialize NAPI */ - netif_napi_add(adapter->netdev, &q_vector->napi, - igb_poll, 64); - } + /* initialize NAPI */ + netif_napi_add(adapter->netdev, &q_vector->napi, + igb_poll, 64); /* tie q_vector and adapter together */ adapter->q_vector[v_idx] = q_vector; @@ -6506,6 +6501,9 @@ static int igb_poll(struct napi_struct *napi, int budget) bool clean_complete = true; int work_done = 0; + if (q_vector->adapter->ecdev) + return -EBUSY; + #ifdef CONFIG_IGB_DCA if (q_vector->adapter->flags & IGB_FLAG_DCA_ENABLED) igb_update_dca(q_vector); diff --git a/devices/igb/igb_main-5.10-ethercat.c b/devices/igb/igb_main-5.10-ethercat.c index 719a03d4..8443832c 100644 --- a/devices/igb/igb_main-5.10-ethercat.c +++ b/devices/igb/igb_main-5.10-ethercat.c @@ -1036,9 +1036,7 @@ static void igb_reset_q_vector(struct igb_adapter *adapter, int v_idx) if (q_vector->rx.ring) adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; - if (!adapter->ecdev) - netif_napi_del(&q_vector->napi); - + netif_napi_del(&q_vector->napi); } static void igb_reset_interrupt_capability(struct igb_adapter *adapter) @@ -1218,10 +1216,8 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter, return -ENOMEM; /* initialize NAPI */ - if (!adapter->ecdev) { - netif_napi_add(adapter->netdev, &q_vector->napi, - igb_poll, 64); - } + netif_napi_add(adapter->netdev, &q_vector->napi, + igb_poll, 64); /* tie q_vector and adapter together */ adapter->q_vector[v_idx] = q_vector; @@ -6491,7 +6487,7 @@ netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb, first->bytecount = skb->len; first->gso_segs = 1; - if (unlikely(!adapter->ecdev && + if (unlikely(!adapter->ecdev && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) { if (adapter->tstamp_config.tx_type == HWTSTAMP_TX_ON && @@ -8133,6 +8129,10 @@ static int igb_poll(struct napi_struct *napi, int budget) bool clean_complete = true; int work_done = 0; + if (q_vector->adapter->ecdev) { + return -EBUSY; + } + #ifdef CONFIG_IGB_DCA if (q_vector->adapter->flags & IGB_FLAG_DCA_ENABLED) igb_update_dca(q_vector); @@ -8274,7 +8274,7 @@ static bool igb_clean_tx_irq(struct igb_q_vector *q_vector, int napi_budget) q_vector->tx.total_bytes += total_bytes; q_vector->tx.total_packets += total_packets; - if (!adapter->ecdev && + if (!adapter->ecdev && test_bit(IGB_RING_FLAG_TX_DETECT_HANG, &tx_ring->flags)) { struct e1000_hw *hw = &adapter->hw; @@ -8926,7 +8926,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget) total_packets++; continue; } - + /* verify the packet layout is correct */ if (igb_cleanup_headers(rx_ring, rx_desc, skb)) { skb = NULL; diff --git a/devices/igb/igb_main-5.14-ethercat.c b/devices/igb/igb_main-5.14-ethercat.c index fd4a4008..3c6c20ac 100644 --- a/devices/igb/igb_main-5.14-ethercat.c +++ b/devices/igb/igb_main-5.14-ethercat.c @@ -1047,8 +1047,7 @@ static void igb_reset_q_vector(struct igb_adapter *adapter, int v_idx) if (q_vector->rx.ring) adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; - if (!get_ecdev(adapter)) - netif_napi_del(&q_vector->napi); + netif_napi_del(&q_vector->napi); } @@ -1229,10 +1228,8 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter, return -ENOMEM; /* initialize NAPI */ - if (get_ecdev(adapter)) { - netif_napi_add(adapter->netdev, &q_vector->napi, - igb_poll, 64); - } + netif_napi_add(adapter->netdev, &q_vector->napi, + igb_poll, 64); /* tie q_vector and adapter together */ adapter->q_vector[v_idx] = q_vector; @@ -8141,6 +8138,10 @@ static int igb_poll(struct napi_struct *napi, int budget) bool clean_complete = true; int work_done = 0; + if (get_ecdev(q_vector->adapter)) { + return -EBUSY; + } + #ifdef CONFIG_IGB_DCA if (q_vector->adapter->flags & IGB_FLAG_DCA_ENABLED) igb_update_dca(q_vector); diff --git a/devices/igb/igb_main-5.15-ethercat.c b/devices/igb/igb_main-5.15-ethercat.c index 03dbfd6d..58db950c 100644 --- a/devices/igb/igb_main-5.15-ethercat.c +++ b/devices/igb/igb_main-5.15-ethercat.c @@ -1036,8 +1036,7 @@ static void igb_reset_q_vector(struct igb_adapter *adapter, int v_idx) if (q_vector->rx.ring) adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; - if (!get_ecdev(adapter)) - netif_napi_del(&q_vector->napi); + netif_napi_del(&q_vector->napi); } @@ -1218,10 +1217,8 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter, return -ENOMEM; /* initialize NAPI */ - if (get_ecdev(adapter)) { - netif_napi_add(adapter->netdev, &q_vector->napi, - igb_poll, 64); - } + netif_napi_add(adapter->netdev, &q_vector->napi, + igb_poll, 64); /* tie q_vector and adapter together */ adapter->q_vector[v_idx] = q_vector; @@ -8131,6 +8128,10 @@ static int igb_poll(struct napi_struct *napi, int budget) bool clean_complete = true; int work_done = 0; + if (get_ecdev(q_vector->adapter)) { + return -EBUSY; + } + #ifdef CONFIG_IGB_DCA if (q_vector->adapter->flags & IGB_FLAG_DCA_ENABLED) igb_update_dca(q_vector); diff --git a/devices/igb/igb_main-6.1-ethercat.c b/devices/igb/igb_main-6.1-ethercat.c index f2a8d12c..a5dd91a6 100644 --- a/devices/igb/igb_main-6.1-ethercat.c +++ b/devices/igb/igb_main-6.1-ethercat.c @@ -1034,8 +1034,7 @@ static void igb_reset_q_vector(struct igb_adapter *adapter, int v_idx) if (q_vector->rx.ring) adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; - if (!get_ecdev(adapter)) - netif_napi_del(&q_vector->napi); + netif_napi_del(&q_vector->napi); } @@ -1220,9 +1219,7 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter, return -ENOMEM; /* initialize NAPI */ - if (!get_ecdev(adapter)) { - netif_napi_add(adapter->netdev, &q_vector->napi, igb_poll); - } + netif_napi_add(adapter->netdev, &q_vector->napi, igb_poll); /* tie q_vector and adapter together */ adapter->q_vector[v_idx] = q_vector; @@ -8284,6 +8281,10 @@ static int igb_poll(struct napi_struct *napi, int budget) bool clean_complete = true; int work_done = 0; + if (get_ecdev(q_vector->adapter)) { + return -EBUSY; + } + #ifdef CONFIG_IGB_DCA if (q_vector->adapter->flags & IGB_FLAG_DCA_ENABLED) igb_update_dca(q_vector);