diff options
Diffstat (limited to 'virt/kvm/async_pf.c')
| -rw-r--r-- | virt/kvm/async_pf.c | 13 | 
1 files changed, 1 insertions, 12 deletions
| diff --git a/virt/kvm/async_pf.c b/virt/kvm/async_pf.c index 99a63bad0306..0ee4816b079a 100644 --- a/virt/kvm/async_pf.c +++ b/virt/kvm/async_pf.c @@ -80,7 +80,6 @@ static void async_pf_execute(struct work_struct *work)  	spin_lock(&vcpu->async_pf.lock);  	first = list_empty(&vcpu->async_pf.done);  	list_add_tail(&apf->link, &vcpu->async_pf.done); -	apf->vcpu = NULL;  	spin_unlock(&vcpu->async_pf.lock);  	/* @@ -120,8 +119,6 @@ static void kvm_flush_and_free_async_pf_work(struct kvm_async_pf *work)  void kvm_clear_async_pf_completion_queue(struct kvm_vcpu *vcpu)  { -	spin_lock(&vcpu->async_pf.lock); -  	/* cancel outstanding work queue item */  	while (!list_empty(&vcpu->async_pf.queue)) {  		struct kvm_async_pf *work = @@ -129,23 +126,15 @@ void kvm_clear_async_pf_completion_queue(struct kvm_vcpu *vcpu)  					 typeof(*work), queue);  		list_del(&work->queue); -		/* -		 * We know it's present in vcpu->async_pf.done, do -		 * nothing here. -		 */ -		if (!work->vcpu) -			continue; - -		spin_unlock(&vcpu->async_pf.lock);  #ifdef CONFIG_KVM_ASYNC_PF_SYNC  		flush_work(&work->work);  #else  		if (cancel_work_sync(&work->work))  			kmem_cache_free(async_pf_cache, work);  #endif -		spin_lock(&vcpu->async_pf.lock);  	} +	spin_lock(&vcpu->async_pf.lock);  	while (!list_empty(&vcpu->async_pf.done)) {  		struct kvm_async_pf *work =  			list_first_entry(&vcpu->async_pf.done, |