Lines Matching refs:pe_data
41 struct pe_data {
56 struct radix_tree_root pe_tree; /* Maps PE handles to pe_data */
74 struct pe_data pe_data;
152 rc = copro_handle_mm_fault(fault->pe_data.mm, fault->dar, fault->dsisr,
156 if (fault->pe_data.xsl_err_cb) {
157 fault->pe_data.xsl_err_cb(
158 fault->pe_data.xsl_err_data,
179 hash_page_mm(fault->pe_data.mm, fault->dar, access, 0x300,
185 mmput(fault->pe_data.mm);
194 struct pe_data *pe_data;
219 pe_data = radix_tree_lookup(&spa->pe_tree, pe_handle);
220 if (!pe_data) {
237 if (!pe_data->mm) {
247 WARN_ON(pe_data->mm->context.id != pid);
249 if (mmget_not_zero(pe_data->mm)) {
253 spa->xsl_fault.pe_data = *pe_data;
498 struct pe_data *pe_data = container_of(mn, struct pe_data, mmu_notifier);
499 struct ocxl_link *link = pe_data->link;
547 struct pe_data *pe_data;
562 pe_data = kmalloc(sizeof(*pe_data), GFP_KERNEL);
563 if (!pe_data) {
568 pe_data->mm = mm;
569 pe_data->xsl_err_cb = xsl_err_cb;
570 pe_data->xsl_err_data = xsl_err_data;
571 pe_data->link = link;
572 pe_data->mmu_notifier.ops = &ocxl_mmu_notifier_ops;
596 mmu_notifier_register(&pe_data->mmu_notifier, mm);
606 radix_tree_insert(&spa->pe_tree, pe_handle, pe_data);
672 struct pe_data *pe_data;
725 pe_data = radix_tree_delete(&spa->pe_tree, pe_handle);
726 if (!pe_data) {
729 if (pe_data->mm) {
732 pe_data->mm->context.id);
733 mmu_notifier_unregister(&pe_data->mmu_notifier,
734 pe_data->mm);
737 pe_data->mm->context.id,
742 mm_context_remove_copro(pe_data->mm);
743 mmdrop(pe_data->mm);
745 kfree_rcu(pe_data, rcu);