On 08/01/2020 10:43, Juergen Gross wrote:
> console_force_unlock() might result in subsequent ASSERT() triggering
> when CONFIG_DEBUG_LOCKS was active. Avoid that by calling
> spin_debug_disable() in console_force_unlock() and make the spinlock
> debug assertions trigger only if spin_debug was active.
>
> Signed-off-by: Juergen Gross <jgr...@suse.com>
> ---
>  xen/common/spinlock.c      | 2 +-
>  xen/drivers/char/console.c | 1 +
>  2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
> index ed69f0a4d2..2a06de3e6a 100644
> --- a/xen/common/spinlock.c
> +++ b/xen/common/spinlock.c
> @@ -85,7 +85,7 @@ static void got_lock(union lock_debug *debug)
>  
>  static void rel_lock(union lock_debug *debug)
>  {
> -    ASSERT(debug->cpu == smp_processor_id());
> +    ASSERT(atomic_read(&spin_debug) <= 0 || debug->cpu == 
> smp_processor_id());

Personally, I think the logic would be easier to follow as:

if ( atomic_read(&spin_debug) )
    ASSERT(debug->cpu == smp_processor_id());

Otherwise, LGTM.  Acked-by: Andrew Cooper <andrew.coop...@citrix.com>. 
Can be fixed on commit if you agree.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to