Re: [PATCH v3 1/7] Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()"

From: Thomas Gleixner
Date: Sun Nov 04 2018 - 15:58:44 EST


On Fri, 2 Nov 2018, Nadav Amit wrote:

> text_mutex is expected to be held before text_poke() is called, but we
> cannot add a lockdep assertion since kgdb does not take it, and instead
> *supposedly* ensures the lock is not taken and will not be acquired by
> any other core while text_poke() is running.
>
> The reason for the "supposedly" comment is that it is not entirely clear
> that this would be the case if gdb_do_roundup is zero.
>
> Add a comment to clarify this behavior, and restore the assertions as
> they were before the recent commit.

It restores nothing. It just removes the assertion.

> This partially reverts commit 9222f606506c ("x86/alternatives:
> Lockdep-enforce text_mutex in text_poke*()")

That opens up the same can of worms again, which took us a while to close.

Can we please instead split out the text_poke() code into a helper function
and have two callers:

text_poke() which contains the assert

text_poke_kgdb() which does not

Thanks,

tglx