lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160826091032.GO10138@twins.programming.kicks-ass.net>
Date:   Fri, 26 Aug 2016 11:10:32 +0200
From:   Peter Zijlstra <peterz@...radead.org>
To:     Andreas Mohr <andi@...as.de>
Cc:     Waiman Long <Waiman.Long@....com>,
        Daniel Vetter <daniel.vetter@...el.com>,
        linux-kernel@...r.kernel.org
Subject: Re: [RFC][PATCH -v2 1/4] locking/drm/i915: Kill mutex trickery

On Fri, Aug 26, 2016 at 05:25:09AM +0200, Andreas Mohr wrote:
> > Another alternative is to provide a standard mutex API that returns the
> > owner of the lock if there is a real need for this capability. Peeking
> > into lock internal is not a good practice.


> So, it seems the most we could provide which would offer a reliable,
> non-racy API protocol is something like:
> 
> static bool mutex_is_locked_by_us(struct mutex *mutex)
> 
> since during execution of this processing it would be guaranteed that:
> - either we do have the lock, thus *we* *RELIABLY* are and will be "the owner"
> - or we simply do not have it, thus *we* *RELIABLY* are and will be "not the owner"

Right, and that is exactly what they attempted and need. And the new
mutex implementation could actually do this much better than the old
one.

But yes, such an interface should be part of the mutex implementation
proper, not something hacked on in random places.

Fwiw, the build bot seems to have found another instance of this thing
:/ drivers/gpu/drm/msm/msm_gem_shrinker.c includes an exact copy.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ