Lines Matching defs:lessee
19 #define drm_for_each_lessee(lessee, lessor) \
20 list_for_each_entry((lessee), &(lessor)->lessees, lessee_list)
40 * _drm_find_lessee - find lessee by id (idr_mutex held)
46 * drm_master of the lessee if valid, NULL otherwise
80 * Checks if any lessee of 'master' holds a lease on 'id'. Return
83 * true Some lessee holds a lease on the object.
84 * false No lessee has a lease on the object.
88 struct drm_master *lessee;
91 drm_for_each_lessee(lessee, master)
92 if (_drm_lease_held_master(lessee, id))
221 * ERR_PTR(-EBUSY) some other lessee holds title to this object
229 struct drm_master *lessee;
236 lessee = drm_master_create(lessor->dev);
237 if (!lessee) {
257 /* Insert the new lessee into the tree */
258 id = idr_alloc(&(drm_lease_owner(lessor)->lessee_idr), lessee, 1, 0, GFP_KERNEL);
264 lessee->lessee_id = id;
265 lessee->lessor = drm_master_get(lessor);
266 list_add_tail(&lessee->lessee_list, &lessor->lessees);
269 lessee->leases = *leases;
270 DRM_DEBUG_LEASE("new lessee %d %p, lessor %d %p\n", lessee->lessee_id, lessee, lessor->lessee_id, lessor);
273 return lessee;
278 drm_master_put(&lessee);
305 /* Remove this master from the lessee idr in the owner */
311 /* Remove this master from any lessee list it may be on */
317 /* Tell the master to check the lessee list */
521 struct drm_master *lessee = NULL;
581 /* lessee will take the ownership of leases */
582 lessee = drm_lease_create(lessor, &leases);
584 if (IS_ERR(lessee)) {
585 ret = PTR_ERR(lessee);
601 lessee_priv->master = lessee;
606 DRM_DEBUG_LEASE("Returning fd %d id %d\n", fd, lessee->lessee_id);
608 cl->lessee_id = lessee->lessee_id;
618 drm_master_put(&lessee);
630 * drm_mode_list_lessees_ioctl - list lessee ids
637 * an array of lessee ids associated with leases from that master
647 struct drm_master *lessor, *lessee;
664 drm_for_each_lessee(lessee, lessor) {
666 if (!idr_is_empty(&lessee->leases)) {
668 DRM_DEBUG_LEASE("Add lessee %d\n", lessee->lessee_id);
669 ret = put_user(lessee->lessee_id, lessee_ids + count);
693 * Return the list of leased objects for the specified lessee
702 struct drm_master *lessee;
716 lessee = drm_file_get_master(lessee_priv);
717 DRM_DEBUG_LEASE("get lease for %d\n", lessee->lessee_id);
721 if (lessee->lessor == NULL)
723 object_idr = &lessee->dev->mode_config.object_idr;
725 /* lessee can only use allowed object */
726 object_idr = &lessee->leases;
744 drm_master_put(&lessee);
764 struct drm_master *lessee;
776 lessee = _drm_find_lessee(lessor, arg->lessee_id);
778 /* No such lessee */
779 if (!lessee) {
785 if (lessee->lessor != lessor) {
790 _drm_lease_revoke(lessee);