Lines Matching refs:rx_pool
331 adapter->rx_pool[i].active = 0; in deactivate_rx_pools()
461 if (adapter->rx_pool[i].active) in replenish_pools()
462 replenish_rx_pool(adapter, &adapter->rx_pool[i]); in replenish_pools()
528 struct ibmvnic_rx_pool *rx_pool; in reset_rx_pools() local
533 if (!adapter->rx_pool) in reset_rx_pools()
539 rx_pool = &adapter->rx_pool[i]; in reset_rx_pools()
543 if (rx_pool->buff_size != buff_size) { in reset_rx_pools()
544 free_long_term_buff(adapter, &rx_pool->long_term_buff); in reset_rx_pools()
545 rx_pool->buff_size = ALIGN(buff_size, L1_CACHE_BYTES); in reset_rx_pools()
547 &rx_pool->long_term_buff, in reset_rx_pools()
548 rx_pool->size * in reset_rx_pools()
549 rx_pool->buff_size); in reset_rx_pools()
552 &rx_pool->long_term_buff); in reset_rx_pools()
558 for (j = 0; j < rx_pool->size; j++) in reset_rx_pools()
559 rx_pool->free_map[j] = j; in reset_rx_pools()
561 memset(rx_pool->rx_buff, 0, in reset_rx_pools()
562 rx_pool->size * sizeof(struct ibmvnic_rx_buff)); in reset_rx_pools()
564 atomic_set(&rx_pool->available, 0); in reset_rx_pools()
565 rx_pool->next_alloc = 0; in reset_rx_pools()
566 rx_pool->next_free = 0; in reset_rx_pools()
567 rx_pool->active = 1; in reset_rx_pools()
575 struct ibmvnic_rx_pool *rx_pool; in release_rx_pools() local
578 if (!adapter->rx_pool) in release_rx_pools()
582 rx_pool = &adapter->rx_pool[i]; in release_rx_pools()
586 kfree(rx_pool->free_map); in release_rx_pools()
587 free_long_term_buff(adapter, &rx_pool->long_term_buff); in release_rx_pools()
589 if (!rx_pool->rx_buff) in release_rx_pools()
592 for (j = 0; j < rx_pool->size; j++) { in release_rx_pools()
593 if (rx_pool->rx_buff[j].skb) { in release_rx_pools()
594 dev_kfree_skb_any(rx_pool->rx_buff[j].skb); in release_rx_pools()
595 rx_pool->rx_buff[j].skb = NULL; in release_rx_pools()
599 kfree(rx_pool->rx_buff); in release_rx_pools()
602 kfree(adapter->rx_pool); in release_rx_pools()
603 adapter->rx_pool = NULL; in release_rx_pools()
611 struct ibmvnic_rx_pool *rx_pool; in init_rx_pools() local
619 adapter->rx_pool = kcalloc(rxadd_subcrqs, in init_rx_pools()
622 if (!adapter->rx_pool) { in init_rx_pools()
630 rx_pool = &adapter->rx_pool[i]; in init_rx_pools()
637 rx_pool->size = adapter->req_rx_add_entries_per_subcrq; in init_rx_pools()
638 rx_pool->index = i; in init_rx_pools()
639 rx_pool->buff_size = ALIGN(buff_size, L1_CACHE_BYTES); in init_rx_pools()
640 rx_pool->active = 1; in init_rx_pools()
642 rx_pool->free_map = kcalloc(rx_pool->size, sizeof(int), in init_rx_pools()
644 if (!rx_pool->free_map) { in init_rx_pools()
649 rx_pool->rx_buff = kcalloc(rx_pool->size, in init_rx_pools()
652 if (!rx_pool->rx_buff) { in init_rx_pools()
658 if (alloc_long_term_buff(adapter, &rx_pool->long_term_buff, in init_rx_pools()
659 rx_pool->size * rx_pool->buff_size)) { in init_rx_pools()
664 for (j = 0; j < rx_pool->size; ++j) in init_rx_pools()
665 rx_pool->free_map[j] = j; in init_rx_pools()
667 atomic_set(&rx_pool->available, 0); in init_rx_pools()
668 rx_pool->next_alloc = 0; in init_rx_pools()
669 rx_pool->next_free = 0; in init_rx_pools()
1320 struct ibmvnic_rx_pool *rx_pool; in clean_rx_pools() local
1326 if (!adapter->rx_pool) in clean_rx_pools()
1334 rx_pool = &adapter->rx_pool[i]; in clean_rx_pools()
1335 if (!rx_pool || !rx_pool->rx_buff) in clean_rx_pools()
1340 rx_buff = &rx_pool->rx_buff[j]; in clean_rx_pools()
2188 !adapter->rx_pool || in do_reset()
2635 struct ibmvnic_rx_pool *pool = &adapter->rx_pool[rx_buff->pool_index]; in remove_buff_from_pool()
2736 ((atomic_read(&adapter->rx_pool[scrq_num].available) < in ibmvnic_poll()
2739 replenish_rx_pool(adapter, &adapter->rx_pool[scrq_num]); in ibmvnic_poll()
5726 ret += adapter->rx_pool[i].size * in ibmvnic_get_desired_dma()
5727 IOMMU_PAGE_ALIGN(adapter->rx_pool[i].buff_size, tbl); in ibmvnic_get_desired_dma()