diff options
| -rw-r--r-- | drivers/gpu/drm/drm_proc.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/gpu/drm/drm_proc.c b/drivers/gpu/drm/drm_proc.c index dc967af7a33..d379c4f2892 100644 --- a/drivers/gpu/drm/drm_proc.c +++ b/drivers/gpu/drm/drm_proc.c @@ -110,20 +110,21 @@ int drm_proc_create_files(struct drm_info_list *files, int count,  			ret = -1;  			goto fail;  		} -		ent = create_proc_entry(files[i].name, S_IFREG | S_IRUGO, root); +		tmp->minor = minor; +		tmp->info_ent = &files[i]; +		list_add(&tmp->list, &minor->proc_nodes.list); + +		ent = proc_create_data(files[i].name, S_IRUGO, root, +				       &drm_proc_fops, tmp);  		if (!ent) {  			DRM_ERROR("Cannot create /proc/dri/%s/%s\n",  				  name, files[i].name); +			list_del(&tmp->list);  			kfree(tmp);  			ret = -1;  			goto fail;  		} -		ent->proc_fops = &drm_proc_fops; -		ent->data = tmp; -		tmp->minor = minor; -		tmp->info_ent = &files[i]; -		list_add(&(tmp->list), &(minor->proc_nodes.list));  	}  	return 0;  |