Lines Matching refs:hwpt_paging

371 				   struct iommufd_hwpt_paging *hwpt_paging)
390 rc = iommufd_sw_msi_install(ictx, hwpt_paging, cur);
399 struct iommufd_hwpt_paging *hwpt_paging)
414 struct iommufd_hwpt_paging *hwpt_paging)
421 rc = iopt_table_enforce_dev_resv_regions(&hwpt_paging->ioas->iopt,
428 rc = iommufd_group_setup_msi(igroup, hwpt_paging);
430 iopt_remove_reserved_iova(&hwpt_paging->ioas->iopt,
605 struct iommufd_hwpt_paging *hwpt_paging = find_hwpt_paging(hwpt);
606 bool attach_resv = hwpt_paging && pasid == IOMMU_NO_PASID;
645 rc = iommufd_device_attach_reserved_iova(idev, hwpt_paging);
672 iopt_remove_reserved_iova(&hwpt_paging->ioas->iopt, idev->dev);
690 struct iommufd_hwpt_paging *hwpt_paging;
702 hwpt_paging = find_hwpt_paging(hwpt);
710 if (hwpt_paging && pasid == IOMMU_NO_PASID)
711 iopt_remove_reserved_iova(&hwpt_paging->ioas->iopt, idev->dev);
732 struct iommufd_hwpt_paging *hwpt_paging)
742 iopt_remove_reserved_iova(&hwpt_paging->ioas->iopt, cur->dev);
747 struct iommufd_hwpt_paging *hwpt_paging)
759 if (!old_hwpt_paging || hwpt_paging->ioas != old_hwpt_paging->ioas) {
762 &hwpt_paging->ioas->iopt, cur->dev, NULL);
768 rc = iommufd_group_setup_msi(igroup, hwpt_paging);
774 iommufd_group_remove_reserved_iova(igroup, hwpt_paging);
782 struct iommufd_hwpt_paging *hwpt_paging = find_hwpt_paging(hwpt);
783 bool attach_resv = hwpt_paging && pasid == IOMMU_NO_PASID;
814 rc = iommufd_group_do_replace_reserved_iova(igroup, hwpt_paging);
825 (!hwpt_paging || hwpt_paging->ioas != old_hwpt_paging->ioas))
845 iommufd_group_remove_reserved_iova(igroup, hwpt_paging);
874 struct iommufd_hwpt_paging *hwpt_paging;
883 list_for_each_entry(hwpt_paging, &ioas->hwpt_list, hwpt_item) {
884 if (!hwpt_paging->auto_domain)
887 hwpt = &hwpt_paging->common;
908 hwpt_paging = iommufd_hwpt_paging_alloc(idev->ictx, ioas, idev, pasid,
910 if (IS_ERR(hwpt_paging)) {
911 destroy_hwpt = ERR_CAST(hwpt_paging);
914 hwpt = &hwpt_paging->common;
924 hwpt_paging->auto_domain = true;