drm/lease: fix WARNING in idr_destroy
drm_lease_create takes ownership of leases. And leases will be released by drm_master_put. drm_master_put ->drm_master_destroy ->idr_destroy So we needn't call idr_destroy again. Reported-and-tested-by: syzbot+05835159fe322770fe3d@syzkaller.appspotmail.com Signed-off-by: Qiujun Huang <hqjagain@gmail.com> Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/1584518030-4173-1-git-send-email-hqjagain@gmail.com
This commit is contained in:
parent
8c34cd1a7f
commit
b216a8e790
|
@ -542,10 +542,12 @@ int drm_mode_create_lease_ioctl(struct drm_device *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
DRM_DEBUG_LEASE("Creating lease\n");
|
DRM_DEBUG_LEASE("Creating lease\n");
|
||||||
|
/* lessee will take the ownership of leases */
|
||||||
lessee = drm_lease_create(lessor, &leases);
|
lessee = drm_lease_create(lessor, &leases);
|
||||||
|
|
||||||
if (IS_ERR(lessee)) {
|
if (IS_ERR(lessee)) {
|
||||||
ret = PTR_ERR(lessee);
|
ret = PTR_ERR(lessee);
|
||||||
|
idr_destroy(&leases);
|
||||||
goto out_leases;
|
goto out_leases;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -580,7 +582,6 @@ out_lessee:
|
||||||
|
|
||||||
out_leases:
|
out_leases:
|
||||||
put_unused_fd(fd);
|
put_unused_fd(fd);
|
||||||
idr_destroy(&leases);
|
|
||||||
|
|
||||||
DRM_DEBUG_LEASE("drm_mode_create_lease_ioctl failed: %d\n", ret);
|
DRM_DEBUG_LEASE("drm_mode_create_lease_ioctl failed: %d\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue