Lines Matching refs:adapter

29 static int i40evf_setup_all_tx_resources(struct i40evf_adapter *adapter);
30 static int i40evf_setup_all_rx_resources(struct i40evf_adapter *adapter);
74 struct i40evf_adapter *adapter = (struct i40evf_adapter *)hw->back; in i40evf_allocate_dma_mem_d() local
80 mem->va = dma_alloc_coherent(&adapter->pdev->dev, mem->size, in i40evf_allocate_dma_mem_d()
95 struct i40evf_adapter *adapter = (struct i40evf_adapter *)hw->back; in i40evf_free_dma_mem_d() local
99 dma_free_coherent(&adapter->pdev->dev, mem->size, in i40evf_free_dma_mem_d()
170 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_tx_timeout() local
172 adapter->tx_timeout_count++; in i40evf_tx_timeout()
173 if (!(adapter->flags & I40EVF_FLAG_RESET_PENDING)) { in i40evf_tx_timeout()
174 adapter->flags |= I40EVF_FLAG_RESET_NEEDED; in i40evf_tx_timeout()
175 schedule_work(&adapter->reset_task); in i40evf_tx_timeout()
183 static void i40evf_misc_irq_disable(struct i40evf_adapter *adapter) in i40evf_misc_irq_disable() argument
185 struct i40e_hw *hw = &adapter->hw; in i40evf_misc_irq_disable()
192 synchronize_irq(adapter->msix_entries[0].vector); in i40evf_misc_irq_disable()
199 static void i40evf_misc_irq_enable(struct i40evf_adapter *adapter) in i40evf_misc_irq_enable() argument
201 struct i40e_hw *hw = &adapter->hw; in i40evf_misc_irq_enable()
215 static void i40evf_irq_disable(struct i40evf_adapter *adapter) in i40evf_irq_disable() argument
218 struct i40e_hw *hw = &adapter->hw; in i40evf_irq_disable()
220 if (!adapter->msix_entries) in i40evf_irq_disable()
223 for (i = 1; i < adapter->num_msix_vectors; i++) { in i40evf_irq_disable()
225 synchronize_irq(adapter->msix_entries[i].vector); in i40evf_irq_disable()
236 void i40evf_irq_enable_queues(struct i40evf_adapter *adapter, u32 mask) in i40evf_irq_enable_queues() argument
238 struct i40e_hw *hw = &adapter->hw; in i40evf_irq_enable_queues()
241 for (i = 1; i < adapter->num_msix_vectors; i++) { in i40evf_irq_enable_queues()
256 static void i40evf_fire_sw_int(struct i40evf_adapter *adapter, u32 mask) in i40evf_fire_sw_int() argument
258 struct i40e_hw *hw = &adapter->hw; in i40evf_fire_sw_int()
269 for (i = 1; i < adapter->num_msix_vectors; i++) { in i40evf_fire_sw_int()
284 void i40evf_irq_enable(struct i40evf_adapter *adapter, bool flush) in i40evf_irq_enable() argument
286 struct i40e_hw *hw = &adapter->hw; in i40evf_irq_enable()
288 i40evf_misc_irq_enable(adapter); in i40evf_irq_enable()
289 i40evf_irq_enable_queues(adapter, ~0); in i40evf_irq_enable()
303 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_msix_aq() local
304 struct i40e_hw *hw = &adapter->hw; in i40evf_msix_aq()
318 schedule_work(&adapter->adminq_task); in i40evf_msix_aq()
347 i40evf_map_vector_to_rxq(struct i40evf_adapter *adapter, int v_idx, int r_idx) in i40evf_map_vector_to_rxq() argument
349 struct i40e_q_vector *q_vector = adapter->q_vector[v_idx]; in i40evf_map_vector_to_rxq()
350 struct i40e_ring *rx_ring = adapter->rx_rings[r_idx]; in i40evf_map_vector_to_rxq()
354 rx_ring->vsi = &adapter->vsi; in i40evf_map_vector_to_rxq()
367 i40evf_map_vector_to_txq(struct i40evf_adapter *adapter, int v_idx, int t_idx) in i40evf_map_vector_to_txq() argument
369 struct i40e_q_vector *q_vector = adapter->q_vector[v_idx]; in i40evf_map_vector_to_txq()
370 struct i40e_ring *tx_ring = adapter->tx_rings[t_idx]; in i40evf_map_vector_to_txq()
374 tx_ring->vsi = &adapter->vsi; in i40evf_map_vector_to_txq()
392 static int i40evf_map_rings_to_vectors(struct i40evf_adapter *adapter) in i40evf_map_rings_to_vectors() argument
397 int rxr_remaining = adapter->num_active_queues; in i40evf_map_rings_to_vectors()
398 int txr_remaining = adapter->num_active_queues; in i40evf_map_rings_to_vectors()
403 q_vectors = adapter->num_msix_vectors - NONQ_VECS; in i40evf_map_rings_to_vectors()
410 i40evf_map_vector_to_rxq(adapter, v_start, rxr_idx); in i40evf_map_rings_to_vectors()
413 i40evf_map_vector_to_txq(adapter, v_start, txr_idx); in i40evf_map_rings_to_vectors()
425 i40evf_map_vector_to_rxq(adapter, i, rxr_idx); in i40evf_map_rings_to_vectors()
433 i40evf_map_vector_to_txq(adapter, i, txr_idx); in i40evf_map_rings_to_vectors()
440 adapter->aq_required |= I40EVF_FLAG_AQ_MAP_VECTORS; in i40evf_map_rings_to_vectors()
453 i40evf_request_traffic_irqs(struct i40evf_adapter *adapter, char *basename) in i40evf_request_traffic_irqs() argument
458 i40evf_irq_disable(adapter); in i40evf_request_traffic_irqs()
460 q_vectors = adapter->num_msix_vectors - NONQ_VECS; in i40evf_request_traffic_irqs()
463 struct i40e_q_vector *q_vector = adapter->q_vector[vector]; in i40evf_request_traffic_irqs()
483 adapter->msix_entries[vector + NONQ_VECS].vector, in i40evf_request_traffic_irqs()
489 dev_info(&adapter->pdev->dev, in i40evf_request_traffic_irqs()
496 adapter->msix_entries[vector + NONQ_VECS].vector, in i40evf_request_traffic_irqs()
506 adapter->msix_entries[vector + NONQ_VECS].vector, in i40evf_request_traffic_irqs()
508 free_irq(adapter->msix_entries[vector + NONQ_VECS].vector, in i40evf_request_traffic_irqs()
509 adapter->q_vector[vector]); in i40evf_request_traffic_irqs()
522 static int i40evf_request_misc_irq(struct i40evf_adapter *adapter) in i40evf_request_misc_irq() argument
524 struct net_device *netdev = adapter->netdev; in i40evf_request_misc_irq()
527 snprintf(adapter->misc_vector_name, in i40evf_request_misc_irq()
528 sizeof(adapter->misc_vector_name) - 1, "i40evf-%s:mbx", in i40evf_request_misc_irq()
529 dev_name(&adapter->pdev->dev)); in i40evf_request_misc_irq()
530 err = request_irq(adapter->msix_entries[0].vector, in i40evf_request_misc_irq()
532 adapter->misc_vector_name, netdev); in i40evf_request_misc_irq()
534 dev_err(&adapter->pdev->dev, in i40evf_request_misc_irq()
536 adapter->misc_vector_name, err); in i40evf_request_misc_irq()
537 free_irq(adapter->msix_entries[0].vector, netdev); in i40evf_request_misc_irq()
548 static void i40evf_free_traffic_irqs(struct i40evf_adapter *adapter) in i40evf_free_traffic_irqs() argument
553 q_vectors = adapter->num_msix_vectors - NONQ_VECS; in i40evf_free_traffic_irqs()
556 irq_set_affinity_hint(adapter->msix_entries[i+1].vector, in i40evf_free_traffic_irqs()
558 free_irq(adapter->msix_entries[i+1].vector, in i40evf_free_traffic_irqs()
559 adapter->q_vector[i]); in i40evf_free_traffic_irqs()
569 static void i40evf_free_misc_irq(struct i40evf_adapter *adapter) in i40evf_free_misc_irq() argument
571 struct net_device *netdev = adapter->netdev; in i40evf_free_misc_irq()
573 free_irq(adapter->msix_entries[0].vector, netdev); in i40evf_free_misc_irq()
582 static void i40evf_configure_tx(struct i40evf_adapter *adapter) in i40evf_configure_tx() argument
584 struct i40e_hw *hw = &adapter->hw; in i40evf_configure_tx()
587 for (i = 0; i < adapter->num_active_queues; i++) in i40evf_configure_tx()
588 adapter->tx_rings[i]->tail = hw->hw_addr + I40E_QTX_TAIL1(i); in i40evf_configure_tx()
597 static void i40evf_configure_rx(struct i40evf_adapter *adapter) in i40evf_configure_rx() argument
599 struct i40e_hw *hw = &adapter->hw; in i40evf_configure_rx()
600 struct net_device *netdev = adapter->netdev; in i40evf_configure_rx()
606 adapter->flags &= ~I40EVF_FLAG_RX_PS_CAPABLE; in i40evf_configure_rx()
607 adapter->flags |= I40EVF_FLAG_RX_1BUF_CAPABLE; in i40evf_configure_rx()
611 if (adapter->flags & I40EVF_FLAG_RX_PS_CAPABLE) in i40evf_configure_rx()
612 adapter->flags |= I40EVF_FLAG_RX_PS_ENABLED; in i40evf_configure_rx()
614 adapter->flags &= ~I40EVF_FLAG_RX_PS_ENABLED; in i40evf_configure_rx()
616 if (adapter->flags & I40EVF_FLAG_RX_1BUF_CAPABLE) in i40evf_configure_rx()
617 adapter->flags &= ~I40EVF_FLAG_RX_PS_ENABLED; in i40evf_configure_rx()
619 adapter->flags |= I40EVF_FLAG_RX_PS_ENABLED; in i40evf_configure_rx()
623 if (adapter->flags & I40EVF_FLAG_RX_PS_ENABLED) { in i40evf_configure_rx()
632 for (i = 0; i < adapter->num_active_queues; i++) { in i40evf_configure_rx()
633 adapter->rx_rings[i]->tail = hw->hw_addr + I40E_QRX_TAIL1(i); in i40evf_configure_rx()
634 adapter->rx_rings[i]->rx_buf_len = rx_buf_len; in i40evf_configure_rx()
646 i40evf_vlan_filter *i40evf_find_vlan(struct i40evf_adapter *adapter, u16 vlan) in i40evf_find_vlan() argument
650 list_for_each_entry(f, &adapter->vlan_filter_list, list) { in i40evf_find_vlan()
665 i40evf_vlan_filter *i40evf_add_vlan(struct i40evf_adapter *adapter, u16 vlan) in i40evf_add_vlan() argument
671 &adapter->crit_section)) { in i40evf_add_vlan()
677 f = i40evf_find_vlan(adapter, vlan); in i40evf_add_vlan()
686 list_add(&f->list, &adapter->vlan_filter_list); in i40evf_add_vlan()
688 adapter->aq_required |= I40EVF_FLAG_AQ_ADD_VLAN_FILTER; in i40evf_add_vlan()
692 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); in i40evf_add_vlan()
702 static void i40evf_del_vlan(struct i40evf_adapter *adapter, u16 vlan) in i40evf_del_vlan() argument
708 &adapter->crit_section)) { in i40evf_del_vlan()
714 f = i40evf_find_vlan(adapter, vlan); in i40evf_del_vlan()
717 adapter->aq_required |= I40EVF_FLAG_AQ_DEL_VLAN_FILTER; in i40evf_del_vlan()
719 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); in i40evf_del_vlan()
730 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_vlan_rx_add_vid() local
732 if (i40evf_add_vlan(adapter, vid) == NULL) in i40evf_vlan_rx_add_vid()
745 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_vlan_rx_kill_vid() local
747 i40evf_del_vlan(adapter, vid); in i40evf_vlan_rx_kill_vid()
759 i40evf_mac_filter *i40evf_find_filter(struct i40evf_adapter *adapter, in i40evf_find_filter() argument
767 list_for_each_entry(f, &adapter->mac_filter_list, list) { in i40evf_find_filter()
782 i40evf_mac_filter *i40evf_add_filter(struct i40evf_adapter *adapter, in i40evf_add_filter() argument
792 &adapter->crit_section)) { in i40evf_add_filter()
798 f = i40evf_find_filter(adapter, macaddr); in i40evf_add_filter()
803 &adapter->crit_section); in i40evf_add_filter()
809 list_add(&f->list, &adapter->mac_filter_list); in i40evf_add_filter()
811 adapter->aq_required |= I40EVF_FLAG_AQ_ADD_MAC_FILTER; in i40evf_add_filter()
814 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); in i40evf_add_filter()
827 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_set_mac() local
828 struct i40e_hw *hw = &adapter->hw; in i40evf_set_mac()
838 f = i40evf_add_filter(adapter, addr->sa_data); in i40evf_set_mac()
841 ether_addr_copy(netdev->dev_addr, adapter->hw.mac.addr); in i40evf_set_mac()
853 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_set_rx_mode() local
861 i40evf_add_filter(adapter, uca->addr); in i40evf_set_rx_mode()
864 i40evf_add_filter(adapter, mca->addr); in i40evf_set_rx_mode()
868 &adapter->crit_section)) { in i40evf_set_rx_mode()
871 dev_err(&adapter->pdev->dev, in i40evf_set_rx_mode()
877 list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, list) { in i40evf_set_rx_mode()
897 adapter->aq_required |= I40EVF_FLAG_AQ_DEL_MAC_FILTER; in i40evf_set_rx_mode()
900 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); in i40evf_set_rx_mode()
907 static void i40evf_napi_enable_all(struct i40evf_adapter *adapter) in i40evf_napi_enable_all() argument
911 int q_vectors = adapter->num_msix_vectors - NONQ_VECS; in i40evf_napi_enable_all()
916 q_vector = adapter->q_vector[q_idx]; in i40evf_napi_enable_all()
926 static void i40evf_napi_disable_all(struct i40evf_adapter *adapter) in i40evf_napi_disable_all() argument
930 int q_vectors = adapter->num_msix_vectors - NONQ_VECS; in i40evf_napi_disable_all()
933 q_vector = adapter->q_vector[q_idx]; in i40evf_napi_disable_all()
942 static void i40evf_configure(struct i40evf_adapter *adapter) in i40evf_configure() argument
944 struct net_device *netdev = adapter->netdev; in i40evf_configure()
949 i40evf_configure_tx(adapter); in i40evf_configure()
950 i40evf_configure_rx(adapter); in i40evf_configure()
951 adapter->aq_required |= I40EVF_FLAG_AQ_CONFIGURE_QUEUES; in i40evf_configure()
953 for (i = 0; i < adapter->num_active_queues; i++) { in i40evf_configure()
954 struct i40e_ring *ring = adapter->rx_rings[i]; in i40evf_configure()
966 static int i40evf_up_complete(struct i40evf_adapter *adapter) in i40evf_up_complete() argument
968 adapter->state = __I40EVF_RUNNING; in i40evf_up_complete()
969 clear_bit(__I40E_DOWN, &adapter->vsi.state); in i40evf_up_complete()
971 i40evf_napi_enable_all(adapter); in i40evf_up_complete()
973 adapter->aq_required |= I40EVF_FLAG_AQ_ENABLE_QUEUES; in i40evf_up_complete()
974 mod_timer_pending(&adapter->watchdog_timer, jiffies + 1); in i40evf_up_complete()
982 void i40evf_down(struct i40evf_adapter *adapter) in i40evf_down() argument
984 struct net_device *netdev = adapter->netdev; in i40evf_down()
987 if (adapter->state == __I40EVF_DOWN) in i40evf_down()
991 &adapter->crit_section)) in i40evf_down()
996 i40evf_napi_disable_all(adapter); in i40evf_down()
997 i40evf_irq_disable(adapter); in i40evf_down()
1000 list_for_each_entry(f, &adapter->mac_filter_list, list) { in i40evf_down()
1004 list_for_each_entry(f, &adapter->vlan_filter_list, list) { in i40evf_down()
1007 if (!(adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) && in i40evf_down()
1008 adapter->state != __I40EVF_RESETTING) { in i40evf_down()
1010 adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; in i40evf_down()
1015 adapter->aq_required = I40EVF_FLAG_AQ_DEL_MAC_FILTER; in i40evf_down()
1016 adapter->aq_required |= I40EVF_FLAG_AQ_DEL_VLAN_FILTER; in i40evf_down()
1017 adapter->aq_required |= I40EVF_FLAG_AQ_DISABLE_QUEUES; in i40evf_down()
1020 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); in i40evf_down()
1033 i40evf_acquire_msix_vectors(struct i40evf_adapter *adapter, int vectors) in i40evf_acquire_msix_vectors() argument
1049 err = pci_enable_msix_range(adapter->pdev, adapter->msix_entries, in i40evf_acquire_msix_vectors()
1052 dev_err(&adapter->pdev->dev, "Unable to allocate MSI-X interrupts\n"); in i40evf_acquire_msix_vectors()
1053 kfree(adapter->msix_entries); in i40evf_acquire_msix_vectors()
1054 adapter->msix_entries = NULL; in i40evf_acquire_msix_vectors()
1062 adapter->num_msix_vectors = err; in i40evf_acquire_msix_vectors()
1072 static void i40evf_free_queues(struct i40evf_adapter *adapter) in i40evf_free_queues() argument
1076 if (!adapter->vsi_res) in i40evf_free_queues()
1078 for (i = 0; i < adapter->num_active_queues; i++) { in i40evf_free_queues()
1079 if (adapter->tx_rings[i]) in i40evf_free_queues()
1080 kfree_rcu(adapter->tx_rings[i], rcu); in i40evf_free_queues()
1081 adapter->tx_rings[i] = NULL; in i40evf_free_queues()
1082 adapter->rx_rings[i] = NULL; in i40evf_free_queues()
1094 static int i40evf_alloc_queues(struct i40evf_adapter *adapter) in i40evf_alloc_queues() argument
1098 for (i = 0; i < adapter->num_active_queues; i++) { in i40evf_alloc_queues()
1107 tx_ring->netdev = adapter->netdev; in i40evf_alloc_queues()
1108 tx_ring->dev = &adapter->pdev->dev; in i40evf_alloc_queues()
1109 tx_ring->count = adapter->tx_desc_count; in i40evf_alloc_queues()
1110 adapter->tx_rings[i] = tx_ring; in i40evf_alloc_queues()
1114 rx_ring->netdev = adapter->netdev; in i40evf_alloc_queues()
1115 rx_ring->dev = &adapter->pdev->dev; in i40evf_alloc_queues()
1116 rx_ring->count = adapter->rx_desc_count; in i40evf_alloc_queues()
1117 adapter->rx_rings[i] = rx_ring; in i40evf_alloc_queues()
1123 i40evf_free_queues(adapter); in i40evf_alloc_queues()
1134 static int i40evf_set_interrupt_capability(struct i40evf_adapter *adapter) in i40evf_set_interrupt_capability() argument
1140 if (!adapter->vsi_res) { in i40evf_set_interrupt_capability()
1144 pairs = adapter->num_active_queues; in i40evf_set_interrupt_capability()
1152 v_budget = min_t(int, v_budget, (int)adapter->vf_res->max_vectors); in i40evf_set_interrupt_capability()
1154 adapter->msix_entries = kcalloc(v_budget, in i40evf_set_interrupt_capability()
1156 if (!adapter->msix_entries) { in i40evf_set_interrupt_capability()
1162 adapter->msix_entries[vector].entry = vector; in i40evf_set_interrupt_capability()
1164 i40evf_acquire_msix_vectors(adapter, v_budget); in i40evf_set_interrupt_capability()
1167 adapter->netdev->real_num_tx_queues = pairs; in i40evf_set_interrupt_capability()
1178 static int i40evf_alloc_q_vectors(struct i40evf_adapter *adapter) in i40evf_alloc_q_vectors() argument
1183 num_q_vectors = adapter->num_msix_vectors - NONQ_VECS; in i40evf_alloc_q_vectors()
1189 q_vector->adapter = adapter; in i40evf_alloc_q_vectors()
1190 q_vector->vsi = &adapter->vsi; in i40evf_alloc_q_vectors()
1192 netif_napi_add(adapter->netdev, &q_vector->napi, in i40evf_alloc_q_vectors()
1194 adapter->q_vector[q_idx] = q_vector; in i40evf_alloc_q_vectors()
1202 q_vector = adapter->q_vector[q_idx]; in i40evf_alloc_q_vectors()
1205 adapter->q_vector[q_idx] = NULL; in i40evf_alloc_q_vectors()
1218 static void i40evf_free_q_vectors(struct i40evf_adapter *adapter) in i40evf_free_q_vectors() argument
1223 num_q_vectors = adapter->num_msix_vectors - NONQ_VECS; in i40evf_free_q_vectors()
1224 napi_vectors = adapter->num_active_queues; in i40evf_free_q_vectors()
1227 struct i40e_q_vector *q_vector = adapter->q_vector[q_idx]; in i40evf_free_q_vectors()
1229 adapter->q_vector[q_idx] = NULL; in i40evf_free_q_vectors()
1241 void i40evf_reset_interrupt_capability(struct i40evf_adapter *adapter) in i40evf_reset_interrupt_capability() argument
1243 pci_disable_msix(adapter->pdev); in i40evf_reset_interrupt_capability()
1244 kfree(adapter->msix_entries); in i40evf_reset_interrupt_capability()
1245 adapter->msix_entries = NULL; in i40evf_reset_interrupt_capability()
1253 int i40evf_init_interrupt_scheme(struct i40evf_adapter *adapter) in i40evf_init_interrupt_scheme() argument
1257 err = i40evf_set_interrupt_capability(adapter); in i40evf_init_interrupt_scheme()
1259 dev_err(&adapter->pdev->dev, in i40evf_init_interrupt_scheme()
1264 err = i40evf_alloc_q_vectors(adapter); in i40evf_init_interrupt_scheme()
1266 dev_err(&adapter->pdev->dev, in i40evf_init_interrupt_scheme()
1271 err = i40evf_alloc_queues(adapter); in i40evf_init_interrupt_scheme()
1273 dev_err(&adapter->pdev->dev, in i40evf_init_interrupt_scheme()
1278 dev_info(&adapter->pdev->dev, "Multiqueue %s: Queue pair count = %u", in i40evf_init_interrupt_scheme()
1279 (adapter->num_active_queues > 1) ? "Enabled" : "Disabled", in i40evf_init_interrupt_scheme()
1280 adapter->num_active_queues); in i40evf_init_interrupt_scheme()
1284 i40evf_free_q_vectors(adapter); in i40evf_init_interrupt_scheme()
1286 i40evf_reset_interrupt_capability(adapter); in i40evf_init_interrupt_scheme()
1297 struct i40evf_adapter *adapter = (struct i40evf_adapter *)data; in i40evf_watchdog_timer() local
1299 schedule_work(&adapter->watchdog_task); in i40evf_watchdog_timer()
1309 struct i40evf_adapter *adapter = container_of(work, in i40evf_watchdog_task() local
1312 struct i40e_hw *hw = &adapter->hw; in i40evf_watchdog_task()
1315 if (test_and_set_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section)) in i40evf_watchdog_task()
1318 if (adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) { in i40evf_watchdog_task()
1324 dev_err(&adapter->pdev->dev, "Hardware came out of reset. Attempting reinit.\n"); in i40evf_watchdog_task()
1325 adapter->state = __I40EVF_STARTUP; in i40evf_watchdog_task()
1326 adapter->flags &= ~I40EVF_FLAG_PF_COMMS_FAILED; in i40evf_watchdog_task()
1327 schedule_delayed_work(&adapter->init_task, 10); in i40evf_watchdog_task()
1329 &adapter->crit_section); in i40evf_watchdog_task()
1337 adapter->aq_required = 0; in i40evf_watchdog_task()
1338 adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; in i40evf_watchdog_task()
1342 if ((adapter->state < __I40EVF_DOWN) || in i40evf_watchdog_task()
1343 (adapter->flags & I40EVF_FLAG_RESET_PENDING)) in i40evf_watchdog_task()
1349 if (!(adapter->flags & I40EVF_FLAG_RESET_PENDING) && in i40evf_watchdog_task()
1352 adapter->state = __I40EVF_RESETTING; in i40evf_watchdog_task()
1353 adapter->flags |= I40EVF_FLAG_RESET_PENDING; in i40evf_watchdog_task()
1354 dev_err(&adapter->pdev->dev, "Hardware reset detected\n"); in i40evf_watchdog_task()
1355 schedule_work(&adapter->reset_task); in i40evf_watchdog_task()
1356 adapter->aq_required = 0; in i40evf_watchdog_task()
1357 adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; in i40evf_watchdog_task()
1364 if (adapter->current_op) { in i40evf_watchdog_task()
1366 dev_dbg(&adapter->pdev->dev, "Admin queue timeout\n"); in i40evf_watchdog_task()
1367 i40evf_send_api_ver(adapter); in i40evf_watchdog_task()
1372 if (adapter->aq_required & I40EVF_FLAG_AQ_DISABLE_QUEUES) { in i40evf_watchdog_task()
1373 i40evf_disable_queues(adapter); in i40evf_watchdog_task()
1377 if (adapter->aq_required & I40EVF_FLAG_AQ_MAP_VECTORS) { in i40evf_watchdog_task()
1378 i40evf_map_queues(adapter); in i40evf_watchdog_task()
1382 if (adapter->aq_required & I40EVF_FLAG_AQ_ADD_MAC_FILTER) { in i40evf_watchdog_task()
1383 i40evf_add_ether_addrs(adapter); in i40evf_watchdog_task()
1387 if (adapter->aq_required & I40EVF_FLAG_AQ_ADD_VLAN_FILTER) { in i40evf_watchdog_task()
1388 i40evf_add_vlans(adapter); in i40evf_watchdog_task()
1392 if (adapter->aq_required & I40EVF_FLAG_AQ_DEL_MAC_FILTER) { in i40evf_watchdog_task()
1393 i40evf_del_ether_addrs(adapter); in i40evf_watchdog_task()
1397 if (adapter->aq_required & I40EVF_FLAG_AQ_DEL_VLAN_FILTER) { in i40evf_watchdog_task()
1398 i40evf_del_vlans(adapter); in i40evf_watchdog_task()
1402 if (adapter->aq_required & I40EVF_FLAG_AQ_CONFIGURE_QUEUES) { in i40evf_watchdog_task()
1403 i40evf_configure_queues(adapter); in i40evf_watchdog_task()
1407 if (adapter->aq_required & I40EVF_FLAG_AQ_ENABLE_QUEUES) { in i40evf_watchdog_task()
1408 i40evf_enable_queues(adapter); in i40evf_watchdog_task()
1412 if (adapter->state == __I40EVF_RUNNING) in i40evf_watchdog_task()
1413 i40evf_request_stats(adapter); in i40evf_watchdog_task()
1415 if (adapter->state == __I40EVF_RUNNING) { in i40evf_watchdog_task()
1416 i40evf_irq_enable_queues(adapter, ~0); in i40evf_watchdog_task()
1417 i40evf_fire_sw_int(adapter, 0xFF); in i40evf_watchdog_task()
1419 i40evf_fire_sw_int(adapter, 0x1); in i40evf_watchdog_task()
1422 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); in i40evf_watchdog_task()
1424 if (adapter->state == __I40EVF_REMOVE) in i40evf_watchdog_task()
1426 if (adapter->aq_required) in i40evf_watchdog_task()
1427 mod_timer(&adapter->watchdog_timer, in i40evf_watchdog_task()
1430 mod_timer(&adapter->watchdog_timer, jiffies + (HZ * 2)); in i40evf_watchdog_task()
1431 schedule_work(&adapter->adminq_task); in i40evf_watchdog_task()
1438 static void i40evf_configure_rss(struct i40evf_adapter *adapter) in i40evf_configure_rss() argument
1441 struct i40e_hw *hw = &adapter->hw; in i40evf_configure_rss()
1463 if (cqueue == adapter->vsi_res->num_queue_pairs) in i40evf_configure_rss()
1485 struct i40evf_adapter *adapter = container_of(work, in i40evf_reset_task() local
1488 struct net_device *netdev = adapter->netdev; in i40evf_reset_task()
1489 struct i40e_hw *hw = &adapter->hw; in i40evf_reset_task()
1495 &adapter->crit_section)) in i40evf_reset_task()
1498 if (adapter->flags & I40EVF_FLAG_RESET_NEEDED) { in i40evf_reset_task()
1499 dev_info(&adapter->pdev->dev, "Requesting reset from PF\n"); in i40evf_reset_task()
1500 i40evf_request_reset(adapter); in i40evf_reset_task()
1513 adapter->flags &= ~I40EVF_FLAG_RESET_PENDING; in i40evf_reset_task()
1531 dev_err(&adapter->pdev->dev, "Reset never finished (%x)\n", in i40evf_reset_task()
1533 adapter->flags |= I40EVF_FLAG_PF_COMMS_FAILED; in i40evf_reset_task()
1535 if (netif_running(adapter->netdev)) { in i40evf_reset_task()
1536 set_bit(__I40E_DOWN, &adapter->vsi.state); in i40evf_reset_task()
1537 i40evf_irq_disable(adapter); in i40evf_reset_task()
1538 i40evf_napi_disable_all(adapter); in i40evf_reset_task()
1542 i40evf_free_traffic_irqs(adapter); in i40evf_reset_task()
1543 i40evf_free_all_tx_resources(adapter); in i40evf_reset_task()
1544 i40evf_free_all_rx_resources(adapter); in i40evf_reset_task()
1548 list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, in i40evf_reset_task()
1553 list_for_each_entry_safe(fv, fvtmp, &adapter->vlan_filter_list, in i40evf_reset_task()
1559 i40evf_free_misc_irq(adapter); in i40evf_reset_task()
1560 i40evf_reset_interrupt_capability(adapter); in i40evf_reset_task()
1561 i40evf_free_queues(adapter); in i40evf_reset_task()
1562 i40evf_free_q_vectors(adapter); in i40evf_reset_task()
1563 kfree(adapter->vf_res); in i40evf_reset_task()
1565 adapter->netdev->flags &= ~IFF_UP; in i40evf_reset_task()
1566 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); in i40evf_reset_task()
1571 adapter->flags &= ~I40EVF_FLAG_RESET_PENDING; in i40evf_reset_task()
1573 i40evf_irq_disable(adapter); in i40evf_reset_task()
1575 if (netif_running(adapter->netdev)) { in i40evf_reset_task()
1576 i40evf_napi_disable_all(adapter); in i40evf_reset_task()
1582 adapter->state = __I40EVF_RESETTING; in i40evf_reset_task()
1586 dev_warn(&adapter->pdev->dev, "Failed to shut down adminq\n"); in i40evf_reset_task()
1587 adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; in i40evf_reset_task()
1590 dev_info(&adapter->pdev->dev, "Failed to init adminq: %d\n", in i40evf_reset_task()
1593 i40evf_map_queues(adapter); in i40evf_reset_task()
1596 list_for_each_entry(f, &adapter->mac_filter_list, list) { in i40evf_reset_task()
1600 list_for_each_entry(f, &adapter->vlan_filter_list, list) { in i40evf_reset_task()
1603 adapter->aq_required = I40EVF_FLAG_AQ_ADD_MAC_FILTER; in i40evf_reset_task()
1604 adapter->aq_required |= I40EVF_FLAG_AQ_ADD_VLAN_FILTER; in i40evf_reset_task()
1605 clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); in i40evf_reset_task()
1607 mod_timer(&adapter->watchdog_timer, jiffies + 2); in i40evf_reset_task()
1609 if (netif_running(adapter->netdev)) { in i40evf_reset_task()
1611 err = i40evf_setup_all_tx_resources(adapter); in i40evf_reset_task()
1616 err = i40evf_setup_all_rx_resources(adapter); in i40evf_reset_task()
1620 i40evf_configure(adapter); in i40evf_reset_task()
1622 err = i40evf_up_complete(adapter); in i40evf_reset_task()
1626 i40evf_irq_enable(adapter, true); in i40evf_reset_task()
1630 dev_err(&adapter->pdev->dev, "failed to allocate resources during reinit\n"); in i40evf_reset_task()
1631 i40evf_close(adapter->netdev); in i40evf_reset_task()
1640 struct i40evf_adapter *adapter = in i40evf_adminq_task() local
1642 struct i40e_hw *hw = &adapter->hw; in i40evf_adminq_task()
1649 if (adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) in i40evf_adminq_task()
1663 i40evf_virtchnl_completion(adapter, v_msg->v_opcode, in i40evf_adminq_task()
1674 dev_info(&adapter->pdev->dev, "ARQ VF Error detected\n"); in i40evf_adminq_task()
1678 dev_info(&adapter->pdev->dev, "ARQ Overflow Error detected\n"); in i40evf_adminq_task()
1682 dev_info(&adapter->pdev->dev, "ARQ Critical Error detected\n"); in i40evf_adminq_task()
1691 dev_info(&adapter->pdev->dev, "ASQ VF Error detected\n"); in i40evf_adminq_task()
1695 dev_info(&adapter->pdev->dev, "ASQ Overflow Error detected\n"); in i40evf_adminq_task()
1699 dev_info(&adapter->pdev->dev, "ASQ Critical Error detected\n"); in i40evf_adminq_task()
1708 i40evf_misc_irq_enable(adapter); in i40evf_adminq_task()
1717 void i40evf_free_all_tx_resources(struct i40evf_adapter *adapter) in i40evf_free_all_tx_resources() argument
1721 for (i = 0; i < adapter->num_active_queues; i++) in i40evf_free_all_tx_resources()
1722 if (adapter->tx_rings[i]->desc) in i40evf_free_all_tx_resources()
1723 i40evf_free_tx_resources(adapter->tx_rings[i]); in i40evf_free_all_tx_resources()
1736 static int i40evf_setup_all_tx_resources(struct i40evf_adapter *adapter) in i40evf_setup_all_tx_resources() argument
1740 for (i = 0; i < adapter->num_active_queues; i++) { in i40evf_setup_all_tx_resources()
1741 adapter->tx_rings[i]->count = adapter->tx_desc_count; in i40evf_setup_all_tx_resources()
1742 err = i40evf_setup_tx_descriptors(adapter->tx_rings[i]); in i40evf_setup_all_tx_resources()
1745 dev_err(&adapter->pdev->dev, in i40evf_setup_all_tx_resources()
1764 static int i40evf_setup_all_rx_resources(struct i40evf_adapter *adapter) in i40evf_setup_all_rx_resources() argument
1768 for (i = 0; i < adapter->num_active_queues; i++) { in i40evf_setup_all_rx_resources()
1769 adapter->rx_rings[i]->count = adapter->rx_desc_count; in i40evf_setup_all_rx_resources()
1770 err = i40evf_setup_rx_descriptors(adapter->rx_rings[i]); in i40evf_setup_all_rx_resources()
1773 dev_err(&adapter->pdev->dev, in i40evf_setup_all_rx_resources()
1787 void i40evf_free_all_rx_resources(struct i40evf_adapter *adapter) in i40evf_free_all_rx_resources() argument
1791 for (i = 0; i < adapter->num_active_queues; i++) in i40evf_free_all_rx_resources()
1792 if (adapter->rx_rings[i]->desc) in i40evf_free_all_rx_resources()
1793 i40evf_free_rx_resources(adapter->rx_rings[i]); in i40evf_free_all_rx_resources()
1810 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_open() local
1813 if (adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) { in i40evf_open()
1814 dev_err(&adapter->pdev->dev, "Unable to open device due to PF driver failure.\n"); in i40evf_open()
1817 if (adapter->state != __I40EVF_DOWN || adapter->aq_required) in i40evf_open()
1821 err = i40evf_setup_all_tx_resources(adapter); in i40evf_open()
1826 err = i40evf_setup_all_rx_resources(adapter); in i40evf_open()
1831 err = i40evf_request_traffic_irqs(adapter, netdev->name); in i40evf_open()
1835 i40evf_configure(adapter); in i40evf_open()
1837 err = i40evf_up_complete(adapter); in i40evf_open()
1841 i40evf_irq_enable(adapter, true); in i40evf_open()
1846 i40evf_down(adapter); in i40evf_open()
1847 i40evf_free_traffic_irqs(adapter); in i40evf_open()
1849 i40evf_free_all_rx_resources(adapter); in i40evf_open()
1851 i40evf_free_all_tx_resources(adapter); in i40evf_open()
1869 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_close() local
1871 if (adapter->state <= __I40EVF_DOWN) in i40evf_close()
1875 set_bit(__I40E_DOWN, &adapter->vsi.state); in i40evf_close()
1877 i40evf_down(adapter); in i40evf_close()
1878 adapter->state = __I40EVF_DOWN; in i40evf_close()
1879 i40evf_free_traffic_irqs(adapter); in i40evf_close()
1893 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_get_stats() local
1896 return &adapter->net_stats; in i40evf_get_stats()
1907 void i40evf_reinit_locked(struct i40evf_adapter *adapter) in i40evf_reinit_locked() argument
1909 struct net_device *netdev = adapter->netdev; in i40evf_reinit_locked()
1914 i40evf_down(adapter); in i40evf_reinit_locked()
1917 err = i40evf_setup_all_tx_resources(adapter); in i40evf_reinit_locked()
1922 err = i40evf_setup_all_rx_resources(adapter); in i40evf_reinit_locked()
1926 i40evf_configure(adapter); in i40evf_reinit_locked()
1928 err = i40evf_up_complete(adapter); in i40evf_reinit_locked()
1932 i40evf_irq_enable(adapter, true); in i40evf_reinit_locked()
1936 dev_err(&adapter->pdev->dev, "failed to allocate resources during reinit\n"); in i40evf_reinit_locked()
1949 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_change_mtu() local
1957 i40evf_reinit_locked(adapter); in i40evf_change_mtu()
2011 struct i40evf_adapter *adapter = container_of(work, in i40evf_init_task() local
2014 struct net_device *netdev = adapter->netdev; in i40evf_init_task()
2016 struct i40e_hw *hw = &adapter->hw; in i40evf_init_task()
2017 struct pci_dev *pdev = adapter->pdev; in i40evf_init_task()
2020 switch (adapter->state) { in i40evf_init_task()
2023 adapter->flags &= ~I40EVF_FLAG_PF_COMMS_FAILED; in i40evf_init_task()
2024 adapter->flags &= ~I40EVF_FLAG_RESET_PENDING; in i40evf_init_task()
2048 err = i40evf_send_api_ver(adapter); in i40evf_init_task()
2054 adapter->state = __I40EVF_INIT_VERSION_CHECK; in i40evf_init_task()
2060 adapter->state = __I40EVF_STARTUP; in i40evf_init_task()
2065 err = i40evf_verify_api_ver(adapter); in i40evf_init_task()
2068 err = i40evf_send_api_ver(adapter); in i40evf_init_task()
2071 err = i40evf_send_vf_config_msg(adapter); in i40evf_init_task()
2077 adapter->state = __I40EVF_INIT_GET_RESOURCES; in i40evf_init_task()
2081 if (!adapter->vf_res) { in i40evf_init_task()
2085 adapter->vf_res = kzalloc(bufsz, GFP_KERNEL); in i40evf_init_task()
2086 if (!adapter->vf_res) in i40evf_init_task()
2089 err = i40evf_get_vf_config(adapter); in i40evf_init_task()
2091 err = i40evf_send_vf_config_msg(adapter); in i40evf_init_task()
2099 adapter->state = __I40EVF_INIT_SW; in i40evf_init_task()
2105 for (i = 0; i < adapter->vf_res->num_vsis; i++) { in i40evf_init_task()
2106 if (adapter->vf_res->vsi_res[i].vsi_type == I40E_VSI_SRIOV) in i40evf_init_task()
2107 adapter->vsi_res = &adapter->vf_res->vsi_res[i]; in i40evf_init_task()
2109 if (!adapter->vsi_res) { in i40evf_init_task()
2114 adapter->flags |= I40EVF_FLAG_RX_CSUM_ENABLED; in i40evf_init_task()
2129 if (adapter->vf_res->vf_offload_flags in i40evf_init_task()
2141 if (!is_valid_ether_addr(adapter->hw.mac.addr)) { in i40evf_init_task()
2143 adapter->hw.mac.addr); in i40evf_init_task()
2144 random_ether_addr(adapter->hw.mac.addr); in i40evf_init_task()
2146 ether_addr_copy(netdev->dev_addr, adapter->hw.mac.addr); in i40evf_init_task()
2147 ether_addr_copy(netdev->perm_addr, adapter->hw.mac.addr); in i40evf_init_task()
2153 ether_addr_copy(f->macaddr, adapter->hw.mac.addr); in i40evf_init_task()
2155 adapter->aq_required |= I40EVF_FLAG_AQ_ADD_MAC_FILTER; in i40evf_init_task()
2157 list_add(&f->list, &adapter->mac_filter_list); in i40evf_init_task()
2159 init_timer(&adapter->watchdog_timer); in i40evf_init_task()
2160 adapter->watchdog_timer.function = &i40evf_watchdog_timer; in i40evf_init_task()
2161 adapter->watchdog_timer.data = (unsigned long)adapter; in i40evf_init_task()
2162 mod_timer(&adapter->watchdog_timer, jiffies + 1); in i40evf_init_task()
2164 adapter->num_active_queues = min_t(int, in i40evf_init_task()
2165 adapter->vsi_res->num_queue_pairs, in i40evf_init_task()
2167 adapter->tx_desc_count = I40EVF_DEFAULT_TXD; in i40evf_init_task()
2168 adapter->rx_desc_count = I40EVF_DEFAULT_RXD; in i40evf_init_task()
2169 err = i40evf_init_interrupt_scheme(adapter); in i40evf_init_task()
2172 i40evf_map_rings_to_vectors(adapter); in i40evf_init_task()
2173 i40evf_configure_rss(adapter); in i40evf_init_task()
2174 err = i40evf_request_misc_irq(adapter); in i40evf_init_task()
2180 adapter->vsi.id = adapter->vsi_res->vsi_id; in i40evf_init_task()
2181 adapter->vsi.seid = adapter->vsi_res->vsi_id; /* dummy */ in i40evf_init_task()
2182 adapter->vsi.back = adapter; in i40evf_init_task()
2183 adapter->vsi.base_vector = 1; in i40evf_init_task()
2184 adapter->vsi.work_limit = I40E_DEFAULT_IRQ_WORK; in i40evf_init_task()
2185 adapter->vsi.rx_itr_setting = (I40E_ITR_DYNAMIC | in i40evf_init_task()
2187 adapter->vsi.tx_itr_setting = (I40E_ITR_DYNAMIC | in i40evf_init_task()
2189 adapter->vsi.netdev = adapter->netdev; in i40evf_init_task()
2191 if (!adapter->netdev_registered) { in i40evf_init_task()
2197 adapter->netdev_registered = true; in i40evf_init_task()
2201 dev_info(&pdev->dev, "MAC address: %pM\n", adapter->hw.mac.addr); in i40evf_init_task()
2206 adapter->state = __I40EVF_DOWN; in i40evf_init_task()
2207 set_bit(__I40E_DOWN, &adapter->vsi.state); in i40evf_init_task()
2208 i40evf_misc_irq_enable(adapter); in i40evf_init_task()
2211 schedule_delayed_work(&adapter->init_task, in i40evf_init_task()
2216 i40evf_free_misc_irq(adapter); in i40evf_init_task()
2218 i40evf_reset_interrupt_capability(adapter); in i40evf_init_task()
2220 kfree(adapter->vf_res); in i40evf_init_task()
2221 adapter->vf_res = NULL; in i40evf_init_task()
2224 if (++adapter->aq_wait_count > I40EVF_AQ_MAX_ERR) { in i40evf_init_task()
2226 adapter->flags |= I40EVF_FLAG_PF_COMMS_FAILED; in i40evf_init_task()
2229 schedule_delayed_work(&adapter->init_task, HZ * 3); in i40evf_init_task()
2239 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_shutdown() local
2247 adapter->state = __I40EVF_REMOVE; in i40evf_shutdown()
2248 adapter->aq_required = 0; in i40evf_shutdown()
2271 struct i40evf_adapter *adapter = NULL; in i40evf_probe() local
2310 adapter = netdev_priv(netdev); in i40evf_probe()
2312 adapter->netdev = netdev; in i40evf_probe()
2313 adapter->pdev = pdev; in i40evf_probe()
2315 hw = &adapter->hw; in i40evf_probe()
2316 hw->back = adapter; in i40evf_probe()
2318 adapter->msg_enable = (1 << DEFAULT_DEBUG_LEVEL_SHIFT) - 1; in i40evf_probe()
2319 adapter->state = __I40EVF_STARTUP; in i40evf_probe()
2338 INIT_LIST_HEAD(&adapter->mac_filter_list); in i40evf_probe()
2339 INIT_LIST_HEAD(&adapter->vlan_filter_list); in i40evf_probe()
2341 INIT_WORK(&adapter->reset_task, i40evf_reset_task); in i40evf_probe()
2342 INIT_WORK(&adapter->adminq_task, i40evf_adminq_task); in i40evf_probe()
2343 INIT_WORK(&adapter->watchdog_task, i40evf_watchdog_task); in i40evf_probe()
2344 INIT_DELAYED_WORK(&adapter->init_task, i40evf_init_task); in i40evf_probe()
2345 schedule_delayed_work(&adapter->init_task, 10); in i40evf_probe()
2370 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_suspend() local
2377 i40evf_down(adapter); in i40evf_suspend()
2380 i40evf_free_misc_irq(adapter); in i40evf_suspend()
2381 i40evf_reset_interrupt_capability(adapter); in i40evf_suspend()
2400 struct i40evf_adapter *adapter = pci_get_drvdata(pdev); in i40evf_resume() local
2401 struct net_device *netdev = adapter->netdev; in i40evf_resume()
2419 err = i40evf_set_interrupt_capability(adapter); in i40evf_resume()
2424 err = i40evf_request_misc_irq(adapter); in i40evf_resume()
2431 schedule_work(&adapter->reset_task); in i40evf_resume()
2451 struct i40evf_adapter *adapter = netdev_priv(netdev); in i40evf_remove() local
2453 struct i40e_hw *hw = &adapter->hw; in i40evf_remove()
2455 cancel_delayed_work_sync(&adapter->init_task); in i40evf_remove()
2456 cancel_work_sync(&adapter->reset_task); in i40evf_remove()
2458 if (adapter->netdev_registered) { in i40evf_remove()
2460 adapter->netdev_registered = false; in i40evf_remove()
2464 adapter->state = __I40EVF_REMOVE; in i40evf_remove()
2465 adapter->aq_required = 0; in i40evf_remove()
2466 i40evf_request_reset(adapter); in i40evf_remove()
2470 i40evf_request_reset(adapter); in i40evf_remove()
2474 if (adapter->msix_entries) { in i40evf_remove()
2475 i40evf_misc_irq_disable(adapter); in i40evf_remove()
2476 i40evf_free_misc_irq(adapter); in i40evf_remove()
2477 i40evf_reset_interrupt_capability(adapter); in i40evf_remove()
2478 i40evf_free_q_vectors(adapter); in i40evf_remove()
2481 if (adapter->watchdog_timer.function) in i40evf_remove()
2482 del_timer_sync(&adapter->watchdog_timer); in i40evf_remove()
2492 i40evf_free_all_tx_resources(adapter); in i40evf_remove()
2493 i40evf_free_all_rx_resources(adapter); in i40evf_remove()
2494 i40evf_free_queues(adapter); in i40evf_remove()
2495 kfree(adapter->vf_res); in i40evf_remove()
2499 list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, list) { in i40evf_remove()
2503 list_for_each_entry_safe(f, ftmp, &adapter->vlan_filter_list, list) { in i40evf_remove()