Lines Matching refs:vsi
41 static int i40e_xsk_pool_enable(struct i40e_vsi *vsi, in i40e_xsk_pool_enable() argument
45 struct net_device *netdev = vsi->netdev; in i40e_xsk_pool_enable()
49 if (vsi->type != I40E_VSI_MAIN) in i40e_xsk_pool_enable()
52 if (qid >= vsi->num_queue_pairs) in i40e_xsk_pool_enable()
59 err = xsk_pool_dma_map(pool, &vsi->back->pdev->dev, I40E_RX_DMA_ATTR); in i40e_xsk_pool_enable()
63 set_bit(qid, vsi->af_xdp_zc_qps); in i40e_xsk_pool_enable()
65 if_running = netif_running(vsi->netdev) && i40e_enabled_xdp_vsi(vsi); in i40e_xsk_pool_enable()
68 err = i40e_queue_pair_disable(vsi, qid); in i40e_xsk_pool_enable()
72 err = i40e_queue_pair_enable(vsi, qid); in i40e_xsk_pool_enable()
77 err = i40e_xsk_wakeup(vsi->netdev, qid, XDP_WAKEUP_RX); in i40e_xsk_pool_enable()
93 static int i40e_xsk_pool_disable(struct i40e_vsi *vsi, u16 qid) in i40e_xsk_pool_disable() argument
95 struct net_device *netdev = vsi->netdev; in i40e_xsk_pool_disable()
104 if_running = netif_running(vsi->netdev) && i40e_enabled_xdp_vsi(vsi); in i40e_xsk_pool_disable()
107 err = i40e_queue_pair_disable(vsi, qid); in i40e_xsk_pool_disable()
112 clear_bit(qid, vsi->af_xdp_zc_qps); in i40e_xsk_pool_disable()
116 err = i40e_queue_pair_enable(vsi, qid); in i40e_xsk_pool_disable()
135 int i40e_xsk_pool_setup(struct i40e_vsi *vsi, struct xsk_buff_pool *pool, in i40e_xsk_pool_setup() argument
138 return pool ? i40e_xsk_pool_enable(vsi, pool, qid) : in i40e_xsk_pool_setup()
139 i40e_xsk_pool_disable(vsi, qid); in i40e_xsk_pool_setup()
173 xdp_ring = rx_ring->vsi->xdp_rings[rx_ring->queue_index]; in i40e_run_xdp_zc()
519 bool i40e_clean_xdp_tx_irq(struct i40e_vsi *vsi, struct i40e_ring *tx_ring) in i40e_clean_xdp_tx_irq() argument
563 i40e_arm_wb(tx_ring, vsi, completed_frames); in i40e_clean_xdp_tx_irq()
583 struct i40e_vsi *vsi = np->vsi; in i40e_xsk_wakeup() local
584 struct i40e_pf *pf = vsi->back; in i40e_xsk_wakeup()
590 if (test_bit(__I40E_VSI_DOWN, vsi->state)) in i40e_xsk_wakeup()
593 if (!i40e_enabled_xdp_vsi(vsi)) in i40e_xsk_wakeup()
596 if (queue_id >= vsi->num_queue_pairs) in i40e_xsk_wakeup()
599 if (!vsi->xdp_rings[queue_id]->xsk_pool) in i40e_xsk_wakeup()
602 ring = vsi->xdp_rings[queue_id]; in i40e_xsk_wakeup()
611 i40e_force_wb(vsi, ring->q_vector); in i40e_xsk_wakeup()
666 bool i40e_xsk_any_rx_ring_enabled(struct i40e_vsi *vsi) in i40e_xsk_any_rx_ring_enabled() argument
668 struct net_device *netdev = vsi->netdev; in i40e_xsk_any_rx_ring_enabled()
671 for (i = 0; i < vsi->num_queue_pairs; i++) { in i40e_xsk_any_rx_ring_enabled()