> > I don't think that works. drm_open_helper doesn't appear to be under the
But not parallel open/release
With the mutex alone the damage is done. Consider two setmasters and some
other action which is making the mutex contend
CPU1 CPU2
file->priv->minor->master == NULL ?
file_priv->minor->master != file_priv->master
mutex_lock (drop BKL)
file->priv->minor->master === NULL
master != file_priv->master
mutex_lock [drop BKL]
takes mutex
minor->master = drm_master_get
is_master = 1
master_set
drop mutex
return 0
takes mutex
minor->master = drm_master_get
is_master = 1
master_set
drops mutex
return 0
Alan
--