drm: restore open_count if drm_setup fails
If drm_setup (called at first open) fails, the whole open call has failed, so we should not keep the open_count incremented. Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com> Cc: stable@vger.kernel.org Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Родитель
3d70f8c617
Коммит
0f1cb1bd94
|
@ -135,8 +135,11 @@ int drm_open(struct inode *inode, struct file *filp)
|
|||
retcode = drm_open_helper(inode, filp, dev);
|
||||
if (!retcode) {
|
||||
atomic_inc(&dev->counts[_DRM_STAT_OPENS]);
|
||||
if (!dev->open_count++)
|
||||
if (!dev->open_count++) {
|
||||
retcode = drm_setup(dev);
|
||||
if (retcode)
|
||||
dev->open_count--;
|
||||
}
|
||||
}
|
||||
if (!retcode) {
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
|
|
Загрузка…
Ссылка в новой задаче