src/dpdk/drivers/net/ark/ark_ethdev_rx.c
void
eth_ark_dev_rx_queue_release(void *vqueue)
{
	struct ark_rx_queue *queue;
	uint32_t i;

	queue = (struct ark_rx_queue *)vqueue;
	if (queue == 0)
		return;

	ark_udm_queue_enable(queue->udm, 0);
	/* Stop the MPU since pointer are going away */
	ark_mpu_stop(queue->mpu);

	/* Need to clear out mbufs here, dropping packets along the way */
	eth_ark_rx_queue_drain(queue);

	for (i = 0; i < queue->queue_size; ++i)
		rte_pktmbuf_free(queue->reserve_q[i]);

	rte_free(queue->reserve_q);
	rte_free(queue->paddress_q);
	rte_free(queue);
}
/* ************************************************************************* */
/* Call on device closed no user API, queue is stopped */
Call on device closed no user API, queue is stopped
Call on device closed no user API queue is stopped
void
eth_ark_dev_rx_queue_release(void *vqueue)
{
	struct ark_rx_queue *queue;
	uint32_t i;
	queue = (struct ark_rx_queue *)vqueue;
	if (queue == 0)
		return;
	ark_udm_queue_enable(queue->udm, 0);
	ark_mpu_stop(queue->mpu);
	eth_ark_rx_queue_drain(queue);
	for (i = 0; i < queue->queue_size; ++i)
		rte_pktmbuf_free(queue->reserve_q[i]);
	rte_free(queue->reserve_q);
	rte_free(queue->paddress_q);
	rte_free(queue);
}
void eth_ark_dev_rx_queue_release ( void * vqueue ) { struct ark_rx_queue * queue ; uint32_t i ; queue = ( struct ark_rx_queue * ) vqueue ; if ( queue == 0 ) return ; ark_udm_queue_enable ( queue -> udm , 0 ) ; ark_mpu_stop ( queue -> mpu ) ; eth_ark_rx_queue_drain ( queue ) ; for ( i = 0 ; i < queue -> queue_size ; ++ i ) rte_pktmbuf_free ( queue -> reserve_q [ i ] ) ; rte_free ( queue -> reserve_q ) ; rte_free ( queue -> paddress_q ) ; rte_free ( queue ) ; }
Call on device closed no user API, queue is stopped
Call on device closed no user API queue is stopped
/* Stop the MPU since pointer are going away */ /* Need to clear out mbufs here, dropping packets along the way */