mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	drm/vboxvideo: use managed pci functions
Allows us to drop the cleanup code on the floor. Sam noticed in his review: > With this change we avoid calling pci_disable_device() > twise in case vbox_mm_init() fails. > Once in vbox_hw_fini() and once in the error path. v2: Include Sam's review remarks v3: Fix typo in commit summary (Thomas Zimmermann) Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Cc: Hans de Goede <hdegoede@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-6-daniel.vetter@ffwll.ch
This commit is contained in:
		
							parent
							
								
									dd9a68935f
								
							
						
					
					
						commit
						8558de401b
					
				
					 2 changed files with 3 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -55,13 +55,13 @@ static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 | 
			
		|||
	pci_set_drvdata(pdev, vbox);
 | 
			
		||||
	mutex_init(&vbox->hw_mutex);
 | 
			
		||||
 | 
			
		||||
	ret = pci_enable_device(pdev);
 | 
			
		||||
	ret = pcim_enable_device(pdev);
 | 
			
		||||
	if (ret)
 | 
			
		||||
		return ret;
 | 
			
		||||
 | 
			
		||||
	ret = vbox_hw_init(vbox);
 | 
			
		||||
	if (ret)
 | 
			
		||||
		goto err_pci_disable;
 | 
			
		||||
		return ret;
 | 
			
		||||
 | 
			
		||||
	ret = vbox_mm_init(vbox);
 | 
			
		||||
	if (ret)
 | 
			
		||||
| 
						 | 
				
			
			@ -91,8 +91,6 @@ static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 | 
			
		|||
	vbox_mm_fini(vbox);
 | 
			
		||||
err_hw_fini:
 | 
			
		||||
	vbox_hw_fini(vbox);
 | 
			
		||||
err_pci_disable:
 | 
			
		||||
	pci_disable_device(pdev);
 | 
			
		||||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -71,8 +71,6 @@ static void vbox_accel_fini(struct vbox_private *vbox)
 | 
			
		|||
 | 
			
		||||
	for (i = 0; i < vbox->num_crtcs; ++i)
 | 
			
		||||
		vbva_disable(&vbox->vbva_info[i], vbox->guest_pool, i);
 | 
			
		||||
 | 
			
		||||
	pci_iounmap(vbox->ddev.pdev, vbox->vbva_buffers);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Do we support the 4.3 plus mode hint reporting interface? */
 | 
			
		||||
| 
						 | 
				
			
			@ -125,7 +123,7 @@ int vbox_hw_init(struct vbox_private *vbox)
 | 
			
		|||
	/* Create guest-heap mem-pool use 2^4 = 16 byte chunks */
 | 
			
		||||
	vbox->guest_pool = gen_pool_create(4, -1);
 | 
			
		||||
	if (!vbox->guest_pool)
 | 
			
		||||
		goto err_unmap_guest_heap;
 | 
			
		||||
		return -ENOMEM;
 | 
			
		||||
 | 
			
		||||
	ret = gen_pool_add_virt(vbox->guest_pool,
 | 
			
		||||
				(unsigned long)vbox->guest_heap,
 | 
			
		||||
| 
						 | 
				
			
			@ -168,8 +166,6 @@ int vbox_hw_init(struct vbox_private *vbox)
 | 
			
		|||
 | 
			
		||||
err_destroy_guest_pool:
 | 
			
		||||
	gen_pool_destroy(vbox->guest_pool);
 | 
			
		||||
err_unmap_guest_heap:
 | 
			
		||||
	pci_iounmap(vbox->ddev.pdev, vbox->guest_heap);
 | 
			
		||||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -177,5 +173,4 @@ void vbox_hw_fini(struct vbox_private *vbox)
 | 
			
		|||
{
 | 
			
		||||
	vbox_accel_fini(vbox);
 | 
			
		||||
	gen_pool_destroy(vbox->guest_pool);
 | 
			
		||||
	pci_iounmap(vbox->ddev.pdev, vbox->guest_heap);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue