On Mon, Aug 10, 2020 at 09:32:57PM +0000, Uriel Guajardo wrote:
> +static inline void kunit_check_locking_bugs(struct kunit *test,
> +                                         unsigned long saved_preempt_count)
> +{
> +     preempt_count_set(saved_preempt_count);
> +#ifdef CONFIG_TRACE_IRQFLAGS
> +     if (softirq_count())
> +             current->softirqs_enabled = 0;
> +     else
> +             current->softirqs_enabled = 1;
> +#endif
> +#if IS_ENABLED(CONFIG_LOCKDEP)
> +     local_irq_disable();
> +     if (!debug_locks) {
> +             kunit_set_failure(test);
> +             lockdep_reset();
> +     }
> +     local_irq_enable();
> +#endif
> +}

Unless you can guarantee this runs before SMP brinup, that
lockdep_reset() is terminally broken.

Reply via email to