Lines Matching refs:msi_page
173 struct iommu_dma_msi_page *msi_page;
180 msi_page = kmalloc(sizeof(*msi_page), GFP_KERNEL);
181 if (!msi_page)
184 msi_page->phys = start;
185 msi_page->iova = start;
186 INIT_LIST_HEAD(&msi_page->list);
187 list_add(&msi_page->list, &cookie->msi_page_list);
1205 struct iommu_dma_msi_page *msi_page;
1211 list_for_each_entry(msi_page, &cookie->msi_page_list, list)
1212 if (msi_page->phys == msi_addr)
1213 return msi_page;
1215 msi_page = kzalloc(sizeof(*msi_page), GFP_KERNEL);
1216 if (!msi_page)
1226 INIT_LIST_HEAD(&msi_page->list);
1227 msi_page->phys = msi_addr;
1228 msi_page->iova = iova;
1229 list_add(&msi_page->list, &cookie->msi_page_list);
1230 return msi_page;
1235 kfree(msi_page);
1243 struct iommu_dma_msi_page *msi_page;
1257 msi_page = iommu_dma_get_msi_page(dev, msi_addr, domain);
1260 msi_desc_set_iommu_cookie(desc, msi_page);
1262 if (!msi_page)
1272 const struct iommu_dma_msi_page *msi_page;
1274 msi_page = msi_desc_get_iommu_cookie(desc);
1276 if (!domain || !domain->iova_cookie || WARN_ON(!msi_page))
1279 msg->address_hi = upper_32_bits(msi_page->iova);
1281 msg->address_lo += lower_32_bits(msi_page->iova);