On Thu, Nov 08, 2018 at 03:34:18PM -0500, Waiman Long wrote:
> A terminal lock is a lock where further locking or unlocking on another
> lock is not allowed. IOW, no forward dependency is permitted.
> 
> With such a restriction in place, we don't really need to do a full
> validation of the lock chain involving a terminal lock.  Instead,
> we just check if there is any further locking or unlocking on another
> lock when a terminal lock is being held.

> @@ -263,6 +270,7 @@ struct held_lock {
>       unsigned int hardirqs_off:1;
>       unsigned int references:12;                                     /* 32 
> bits */
>       unsigned int pin_count;
> +     unsigned int flags;
>  };

I'm thinking we can easily steal some bits off of the pin_count field if
we have to.

Reply via email to