aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/drm_client.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c
index 4039a4d103a8..9b142f58d489 100644
--- a/drivers/gpu/drm/drm_client.c
+++ b/drivers/gpu/drm/drm_client.c
@@ -78,7 +78,6 @@ EXPORT_SYMBOL(drm_client_close);
78int drm_client_new(struct drm_device *dev, struct drm_client_dev *client, 78int drm_client_new(struct drm_device *dev, struct drm_client_dev *client,
79 const char *name, const struct drm_client_funcs *funcs) 79 const char *name, const struct drm_client_funcs *funcs)
80{ 80{
81 bool registered;
82 int ret; 81 int ret;
83 82
84 if (!drm_core_check_feature(dev, DRIVER_MODESET) || 83 if (!drm_core_check_feature(dev, DRIVER_MODESET) ||
@@ -97,21 +96,13 @@ int drm_client_new(struct drm_device *dev, struct drm_client_dev *client,
97 goto err_put_module; 96 goto err_put_module;
98 97
99 mutex_lock(&dev->clientlist_mutex); 98 mutex_lock(&dev->clientlist_mutex);
100 registered = dev->registered; 99 list_add(&client->list, &dev->clientlist);
101 if (registered)
102 list_add(&client->list, &dev->clientlist);
103 mutex_unlock(&dev->clientlist_mutex); 100 mutex_unlock(&dev->clientlist_mutex);
104 if (!registered) {
105 ret = -ENODEV;
106 goto err_close;
107 }
108 101
109 drm_dev_get(dev); 102 drm_dev_get(dev);
110 103
111 return 0; 104 return 0;
112 105
113err_close:
114 drm_client_close(client);
115err_put_module: 106err_put_module:
116 if (funcs) 107 if (funcs)
117 module_put(funcs->owner); 108 module_put(funcs->owner);