61
61
* trusted clients.
62
62
*/
63
63
64
- static bool drm_is_current_master_locked (struct drm_file * fpriv )
65
- {
66
- lockdep_assert_held_once (& fpriv -> master -> dev -> master_mutex );
67
-
68
- return fpriv -> is_master && drm_lease_owner (fpriv -> master ) == fpriv -> minor -> dev -> master ;
69
- }
70
-
71
- /**
72
- * drm_is_current_master - checks whether @priv is the current master
73
- * @fpriv: DRM file private
74
- *
75
- * Checks whether @fpriv is current master on its device. This decides whether a
76
- * client is allowed to run DRM_MASTER IOCTLs.
77
- *
78
- * Most of the modern IOCTL which require DRM_MASTER are for kernel modesetting
79
- * - the current master is assumed to own the non-shareable display hardware.
80
- */
81
- bool drm_is_current_master (struct drm_file * fpriv )
82
- {
83
- bool ret ;
84
-
85
- mutex_lock (& fpriv -> master -> dev -> master_mutex );
86
- ret = drm_is_current_master_locked (fpriv );
87
- mutex_unlock (& fpriv -> master -> dev -> master_mutex );
88
-
89
- return ret ;
90
- }
91
- EXPORT_SYMBOL (drm_is_current_master );
92
-
93
64
int drm_getmagic (struct drm_device * dev , void * data , struct drm_file * file_priv )
94
65
{
95
66
struct drm_auth * auth = data ;
@@ -252,7 +223,7 @@ int drm_setmaster_ioctl(struct drm_device *dev, void *data,
252
223
if (ret )
253
224
goto out_unlock ;
254
225
255
- if (drm_is_current_master_locked (file_priv ))
226
+ if (drm_is_current_master (file_priv ))
256
227
goto out_unlock ;
257
228
258
229
if (dev -> master ) {
@@ -301,7 +272,7 @@ int drm_dropmaster_ioctl(struct drm_device *dev, void *data,
301
272
if (ret )
302
273
goto out_unlock ;
303
274
304
- if (!drm_is_current_master_locked (file_priv )) {
275
+ if (!drm_is_current_master (file_priv )) {
305
276
ret = - EINVAL ;
306
277
goto out_unlock ;
307
278
}
@@ -350,7 +321,7 @@ void drm_master_release(struct drm_file *file_priv)
350
321
if (file_priv -> magic )
351
322
idr_remove (& file_priv -> master -> magic_map , file_priv -> magic );
352
323
353
- if (!drm_is_current_master_locked (file_priv ))
324
+ if (!drm_is_current_master (file_priv ))
354
325
goto out ;
355
326
356
327
drm_legacy_lock_master_cleanup (dev , master );
@@ -371,6 +342,22 @@ void drm_master_release(struct drm_file *file_priv)
371
342
mutex_unlock (& dev -> master_mutex );
372
343
}
373
344
345
+ /**
346
+ * drm_is_current_master - checks whether @priv is the current master
347
+ * @fpriv: DRM file private
348
+ *
349
+ * Checks whether @fpriv is current master on its device. This decides whether a
350
+ * client is allowed to run DRM_MASTER IOCTLs.
351
+ *
352
+ * Most of the modern IOCTL which require DRM_MASTER are for kernel modesetting
353
+ * - the current master is assumed to own the non-shareable display hardware.
354
+ */
355
+ bool drm_is_current_master (struct drm_file * fpriv )
356
+ {
357
+ return fpriv -> is_master && drm_lease_owner (fpriv -> master ) == fpriv -> minor -> dev -> master ;
358
+ }
359
+ EXPORT_SYMBOL (drm_is_current_master );
360
+
374
361
/**
375
362
* drm_master_get - reference a master pointer
376
363
* @master: &struct drm_master
0 commit comments