Lines Matching refs:group

42 static void __iopf_free_group(struct iopf_group *group)  in __iopf_free_group()  argument
46 list_for_each_entry_safe(iopf, next, &group->faults, list) { in __iopf_free_group()
52 iopf_put_dev_fault_param(group->fault_param); in __iopf_free_group()
55 void iopf_free_group(struct iopf_group *group) in iopf_free_group() argument
57 __iopf_free_group(group); in iopf_free_group()
58 kfree(group); in iopf_free_group()
86 struct iopf_group *group; in iopf_group_alloc() local
88 group = kzalloc(sizeof(*group), GFP_KERNEL); in iopf_group_alloc()
89 if (!group) { in iopf_group_alloc()
94 group = abort_group; in iopf_group_alloc()
97 group->fault_param = iopf_param; in iopf_group_alloc()
98 group->last_fault.fault = evt->fault; in iopf_group_alloc()
99 INIT_LIST_HEAD(&group->faults); in iopf_group_alloc()
100 INIT_LIST_HEAD(&group->pending_node); in iopf_group_alloc()
101 list_add(&group->last_fault.list, &group->faults); in iopf_group_alloc()
108 list_move(&iopf->list, &group->faults); in iopf_group_alloc()
110 list_add(&group->pending_node, &iopf_param->faults); in iopf_group_alloc()
113 group->fault_count = list_count_nodes(&group->faults); in iopf_group_alloc()
115 return group; in iopf_group_alloc()
220 struct iopf_group *group; in iommu_report_device_fault() local
252 group = iopf_group_alloc(iopf_param, evt, &abort_group); in iommu_report_device_fault()
253 if (group == &abort_group) in iommu_report_device_fault()
256 group->attach_handle = attach_handle; in iommu_report_device_fault()
262 if (group->attach_handle->domain->iopf_handler(group)) in iommu_report_device_fault()
270 iopf_group_response(group, IOMMU_PAGE_RESP_FAILURE); in iommu_report_device_fault()
271 if (group == &abort_group) in iommu_report_device_fault()
272 __iopf_free_group(group); in iommu_report_device_fault()
274 iopf_free_group(group); in iommu_report_device_fault()
322 void iopf_group_response(struct iopf_group *group, in iopf_group_response() argument
325 struct iommu_fault_param *fault_param = group->fault_param; in iopf_group_response()
326 struct iopf_fault *iopf = &group->last_fault; in iopf_group_response()
327 struct device *dev = group->fault_param->dev; in iopf_group_response()
337 if (!list_empty(&group->pending_node)) { in iopf_group_response()
338 ops->page_response(dev, &group->last_fault, &resp); in iopf_group_response()
339 list_del_init(&group->pending_node); in iopf_group_response()
454 struct iopf_group *group, *temp; in iopf_queue_remove_device() local
471 list_for_each_entry_safe(group, temp, &fault_param->faults, pending_node) { in iopf_queue_remove_device()
472 struct iopf_fault *iopf = &group->last_fault; in iopf_queue_remove_device()
480 list_del_init(&group->pending_node); in iopf_queue_remove_device()