On Thu, Jun 17, 2021 at 05:47:33PM +0800, Qiang Ma wrote:
The drm_file pointer clears to zero during multi-user switching, so it needs to call drm_new_set_master for master pointer from drm_file.
That sounds like a bug. drm_file->master should be always the same - either you become a new stand-alone thing, our you get linked to the current master.
Or I'm completely missing what you're trying to fix here. -Daniel
Signed-off-by: Qiang Ma maqianga@uniontech.com
drivers/gpu/drm/drm_auth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c index f2d46b7ac6f9..02431af6d0c5 100644 --- a/drivers/gpu/drm/drm_auth.c +++ b/drivers/gpu/drm/drm_auth.c @@ -302,7 +302,7 @@ int drm_master_open(struct drm_file *file_priv) /* if there is no current master make this fd it, but do not create * any master object for render clients */ mutex_lock(&dev->master_mutex);
- if (!dev->master)
- if (!file_priv->master) ret = drm_new_set_master(dev, file_priv); else file_priv->master = drm_master_get(dev->master);
-- 2.20.1