mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	drm/core: Preserve the framebuffer after removing it.
Previously RMFB and fd close chose to disable any plane that had an active framebuffer from this file. If it was a primary plane the crtc was disabled. However the fbdev code or any system compositor should restore the planes anyway so there's no need to do it twice. The old fb_id is zero'd, so there's no danger of being able to restore the fb from fb_id. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
		
							parent
							
								
									4dfd64862f
								
							
						
					
					
						commit
						1380313281
					
				
					 1 changed files with 2 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -3327,7 +3327,7 @@ int drm_mode_rmfb(struct drm_device *dev,
 | 
			
		|||
	mutex_unlock(&dev->mode_config.fb_lock);
 | 
			
		||||
	mutex_unlock(&file_priv->fbs_lock);
 | 
			
		||||
 | 
			
		||||
	drm_framebuffer_remove(fb);
 | 
			
		||||
	drm_framebuffer_unreference(fb);
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3517,7 +3517,7 @@ void drm_fb_release(struct drm_file *priv)
 | 
			
		|||
		list_del_init(&fb->filp_head);
 | 
			
		||||
 | 
			
		||||
		/* This will also drop the fpriv->fbs reference. */
 | 
			
		||||
		drm_framebuffer_remove(fb);
 | 
			
		||||
		drm_framebuffer_unreference(fb);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue