forked from mirrors/linux
		
	drm: debugfs: make drm_debugfs_create_files() never fail
As stated before, there is no need to care if a debugfs function succeeds or not, and no code logic in the kernel should ever change based on a debugfs function return value, so make drm_debugfs_create_files() never fail. If it encounters an odd/rare/impossible error (i.e. out of memory, or a duplicate debugfs filename to be created), just keep on moving as if nothing improper had happened. Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <maxime.ripard@bootlin.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: dri-devel@lists.freedesktop.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20190614095110.3716-2-gregkh@linuxfoundation.org
This commit is contained in:
		
							parent
							
								
									de85ec271a
								
							
						
					
					
						commit
						987d65d013
					
				
					 1 changed files with 6 additions and 20 deletions
				
			
		|  | @ -176,9 +176,8 @@ int drm_debugfs_create_files(const struct drm_info_list *files, int count, | |||
| 			     struct dentry *root, struct drm_minor *minor) | ||||
| { | ||||
| 	struct drm_device *dev = minor->dev; | ||||
| 	struct dentry *ent; | ||||
| 	struct drm_info_node *tmp; | ||||
| 	int i, ret; | ||||
| 	int i; | ||||
| 
 | ||||
| 	for (i = 0; i < count; i++) { | ||||
| 		u32 features = files[i].driver_features; | ||||
|  | @ -188,22 +187,13 @@ int drm_debugfs_create_files(const struct drm_info_list *files, int count, | |||
| 			continue; | ||||
| 
 | ||||
| 		tmp = kmalloc(sizeof(struct drm_info_node), GFP_KERNEL); | ||||
| 		if (tmp == NULL) { | ||||
| 			ret = -1; | ||||
| 			goto fail; | ||||
| 		} | ||||
| 		ent = debugfs_create_file(files[i].name, S_IFREG | S_IRUGO, | ||||
| 					  root, tmp, &drm_debugfs_fops); | ||||
| 		if (!ent) { | ||||
| 			DRM_ERROR("Cannot create /sys/kernel/debug/dri/%pd/%s\n", | ||||
| 				  root, files[i].name); | ||||
| 			kfree(tmp); | ||||
| 			ret = -1; | ||||
| 			goto fail; | ||||
| 		} | ||||
| 		if (tmp == NULL) | ||||
| 			continue; | ||||
| 
 | ||||
| 		tmp->minor = minor; | ||||
| 		tmp->dent = ent; | ||||
| 		tmp->dent = debugfs_create_file(files[i].name, | ||||
| 						S_IFREG | S_IRUGO, root, tmp, | ||||
| 						&drm_debugfs_fops); | ||||
| 		tmp->info_ent = &files[i]; | ||||
| 
 | ||||
| 		mutex_lock(&minor->debugfs_lock); | ||||
|  | @ -211,10 +201,6 @@ int drm_debugfs_create_files(const struct drm_info_list *files, int count, | |||
| 		mutex_unlock(&minor->debugfs_lock); | ||||
| 	} | ||||
| 	return 0; | ||||
| 
 | ||||
| fail: | ||||
| 	drm_debugfs_remove_files(files, count, minor); | ||||
| 	return ret; | ||||
| } | ||||
| EXPORT_SYMBOL(drm_debugfs_create_files); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Greg Kroah-Hartman
						Greg Kroah-Hartman