Lines Matching defs:mag
602 struct iova_magazine *mag;
604 mag = kmem_cache_alloc(iova_magazine_cache, flags);
605 if (mag)
606 mag->size = 0;
608 return mag;
611 static void iova_magazine_free(struct iova_magazine *mag)
613 kmem_cache_free(iova_magazine_cache, mag);
617 iova_magazine_free_pfns(struct iova_magazine *mag, struct iova_domain *iovad)
624 for (i = 0 ; i < mag->size; ++i) {
625 struct iova *iova = private_find_iova(iovad, mag->pfns[i]);
636 mag->size = 0;
639 static bool iova_magazine_full(struct iova_magazine *mag)
641 return mag->size == IOVA_MAG_SIZE;
644 static bool iova_magazine_empty(struct iova_magazine *mag)
646 return mag->size == 0;
649 static unsigned long iova_magazine_pop(struct iova_magazine *mag,
656 for (i = mag->size - 1; mag->pfns[i] > limit_pfn; i--)
661 pfn = mag->pfns[i];
662 mag->pfns[i] = mag->pfns[--mag->size];
667 static void iova_magazine_push(struct iova_magazine *mag, unsigned long pfn)
669 mag->pfns[mag->size++] = pfn;
674 struct iova_magazine *mag = rcache->depot;
676 rcache->depot = mag->next;
677 mag->size = IOVA_MAG_SIZE;
679 return mag;
682 static void iova_depot_push(struct iova_rcache *rcache, struct iova_magazine *mag)
684 mag->next = rcache->depot;
685 rcache->depot = mag;
692 struct iova_magazine *mag = NULL;
697 mag = iova_depot_pop(rcache);
700 if (mag) {
701 iova_magazine_free_pfns(mag, rcache->iovad);
702 iova_magazine_free(mag);
928 struct iova_magazine *mag = iova_depot_pop(rcache);
930 iova_magazine_free_pfns(mag, iovad);
931 iova_magazine_free(mag);