forked from mirrors/linux
		
	vhost: return task creation error instead of NULL
Lets callers distinguish why the vhost task creation failed. No one currently cares why it failed, so no real runtime change from this patch, but that will not be the case for long. Signed-off-by: Keith Busch <kbusch@kernel.org> Message-ID: <20250227230631.303431-2-kbusch@meta.com> Reviewed-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									982caaa115
								
							
						
					
					
						commit
						cb380909ae
					
				
					 3 changed files with 4 additions and 4 deletions
				
			
		|  | @ -7471,7 +7471,7 @@ static void kvm_mmu_start_lpage_recovery(struct once *once) | ||||||
| 				      kvm_nx_huge_page_recovery_worker_kill, | 				      kvm_nx_huge_page_recovery_worker_kill, | ||||||
| 				      kvm, "kvm-nx-lpage-recovery"); | 				      kvm, "kvm-nx-lpage-recovery"); | ||||||
| 
 | 
 | ||||||
| 	if (!nx_thread) | 	if (IS_ERR(nx_thread)) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	vhost_task_start(nx_thread); | 	vhost_task_start(nx_thread); | ||||||
|  |  | ||||||
|  | @ -666,7 +666,7 @@ static struct vhost_worker *vhost_worker_create(struct vhost_dev *dev) | ||||||
| 
 | 
 | ||||||
| 	vtsk = vhost_task_create(vhost_run_work_list, vhost_worker_killed, | 	vtsk = vhost_task_create(vhost_run_work_list, vhost_worker_killed, | ||||||
| 				 worker, name); | 				 worker, name); | ||||||
| 	if (!vtsk) | 	if (IS_ERR(vtsk)) | ||||||
| 		goto free_worker; | 		goto free_worker; | ||||||
| 
 | 
 | ||||||
| 	mutex_init(&worker->mutex); | 	mutex_init(&worker->mutex); | ||||||
|  |  | ||||||
|  | @ -133,7 +133,7 @@ struct vhost_task *vhost_task_create(bool (*fn)(void *), | ||||||
| 
 | 
 | ||||||
| 	vtsk = kzalloc(sizeof(*vtsk), GFP_KERNEL); | 	vtsk = kzalloc(sizeof(*vtsk), GFP_KERNEL); | ||||||
| 	if (!vtsk) | 	if (!vtsk) | ||||||
| 		return NULL; | 		return ERR_PTR(-ENOMEM); | ||||||
| 	init_completion(&vtsk->exited); | 	init_completion(&vtsk->exited); | ||||||
| 	mutex_init(&vtsk->exit_mutex); | 	mutex_init(&vtsk->exit_mutex); | ||||||
| 	vtsk->data = arg; | 	vtsk->data = arg; | ||||||
|  | @ -145,7 +145,7 @@ struct vhost_task *vhost_task_create(bool (*fn)(void *), | ||||||
| 	tsk = copy_process(NULL, 0, NUMA_NO_NODE, &args); | 	tsk = copy_process(NULL, 0, NUMA_NO_NODE, &args); | ||||||
| 	if (IS_ERR(tsk)) { | 	if (IS_ERR(tsk)) { | ||||||
| 		kfree(vtsk); | 		kfree(vtsk); | ||||||
| 		return NULL; | 		return ERR_PTR(PTR_ERR(tsk)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	vtsk->task = tsk; | 	vtsk->task = tsk; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Keith Busch
						Keith Busch