On 23/11/2021 14:10, Robin Murphy wrote:
ruct iommu_dma_msi_page {
        struct list_head        list;
@@ -41,7 +43,19 @@ struct iommu_dma_cookie {
        enum iommu_dma_cookie_type      type;
        union {
                /* Full allocator for IOMMU_DMA_IOVA_COOKIE */
-               struct iova_domain      iovad;
+               struct {
+                       struct iova_domain      iovad;
+
+                       struct iova_fq __percpu *fq;    /* Flush queue */
+                       /* Number of TLB flushes that have been started */
+                       atomic64_t              fq_flush_start_cnt;
+                       /* Number of TLB flushes that have been finished */
+                       atomic64_t              fq_flush_finish_cnt;
+                       /* Timer to regularily empty the flush queues */
+                       struct timer_list       fq_timer;
+                       /* 1 when timer is active, 0 when not */
+                       atomic_t                fq_timer_on;

I thought that putting all the FQ stuff in its own structure would be neater, but that's just personal preference.

Thanks,
John
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to