[PATCH 06/16] drm: Move master pointer from drm_minor to drm_device

Chris Wilson chris at chris-wilson.co.uk
Fri Jun 17 07:51:50 UTC 2016


On Fri, Jun 17, 2016 at 09:33:24AM +0200, Daniel Vetter wrote:
> There can only be one current master, and it's for the overall device.
> Render/control minors don't support master-based auth at all.
> 
> This simplifies the master logic a lot, at least in my eyes: All these
> additional pointer chases are just confusing.
> 
> While doing the conversion I spotted some locking fail:
> - drm_lock/drm_auth check dev->master without holding the
>   master_mutex. This is fallout from
> 
>   commit c996fd0b956450563454e7ccc97a82ca31f9d043
>   Author: Thomas Hellstrom <thellstrom at vmware.com>
>   Date:   Tue Feb 25 19:57:44 2014 +0100
> 
>       drm: Protect the master management with a drm_device::master_mutex v3
> 
>   but I honestly don't care one bit about those old legacy drivers
>   using this.
> 
> - debugfs name info should just grab master_mutex.
> 
> - And the fbdev helper looked at it to figure out whether someone is
>   using KMS. We just need a consistent value, so READ_ONCE. Aside: We
>   should probably check if anyone has opened a control node too, but I
>   guess current userspace doesn't really do that yet.
> 
> v2: Balance locking, reported by Julia.
> 
> Cc: Julia Lawall <julia.lawall at lip6.fr>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>

Ok, I understand now why drm_new_set_master appears backwards to me. It
really is creating a new master that fpriv inherits (just like fpriv
inherits the existing master otherwise).

Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the dri-devel mailing list