Lines Matching refs:msi_page
408 struct iommu_dma_msi_page *msi_page; in cookie_init_hw_msi_region() local
415 msi_page = kmalloc(sizeof(*msi_page), GFP_KERNEL); in cookie_init_hw_msi_region()
416 if (!msi_page) in cookie_init_hw_msi_region()
419 msi_page->phys = start; in cookie_init_hw_msi_region()
420 msi_page->iova = start; in cookie_init_hw_msi_region()
421 INIT_LIST_HEAD(&msi_page->list); in cookie_init_hw_msi_region()
422 list_add(&msi_page->list, &cookie->msi_page_list); in cookie_init_hw_msi_region()
1624 struct iommu_dma_msi_page *msi_page; in iommu_dma_get_msi_page() local
1630 list_for_each_entry(msi_page, &cookie->msi_page_list, list) in iommu_dma_get_msi_page()
1631 if (msi_page->phys == msi_addr) in iommu_dma_get_msi_page()
1632 return msi_page; in iommu_dma_get_msi_page()
1634 msi_page = kzalloc(sizeof(*msi_page), GFP_KERNEL); in iommu_dma_get_msi_page()
1635 if (!msi_page) in iommu_dma_get_msi_page()
1645 INIT_LIST_HEAD(&msi_page->list); in iommu_dma_get_msi_page()
1646 msi_page->phys = msi_addr; in iommu_dma_get_msi_page()
1647 msi_page->iova = iova; in iommu_dma_get_msi_page()
1648 list_add(&msi_page->list, &cookie->msi_page_list); in iommu_dma_get_msi_page()
1649 return msi_page; in iommu_dma_get_msi_page()
1654 kfree(msi_page); in iommu_dma_get_msi_page()
1669 struct iommu_dma_msi_page *msi_page; in iommu_dma_prepare_msi() local
1683 msi_page = iommu_dma_get_msi_page(dev, msi_addr, domain); in iommu_dma_prepare_msi()
1686 msi_desc_set_iommu_cookie(desc, msi_page); in iommu_dma_prepare_msi()
1688 if (!msi_page) in iommu_dma_prepare_msi()
1702 const struct iommu_dma_msi_page *msi_page; in iommu_dma_compose_msi_msg() local
1704 msi_page = msi_desc_get_iommu_cookie(desc); in iommu_dma_compose_msi_msg()
1706 if (!domain || !domain->iova_cookie || WARN_ON(!msi_page)) in iommu_dma_compose_msi_msg()
1709 msg->address_hi = upper_32_bits(msi_page->iova); in iommu_dma_compose_msi_msg()
1711 msg->address_lo += lower_32_bits(msi_page->iova); in iommu_dma_compose_msi_msg()