On 2023-08-11, "Jiri Slaby (SUSE)" <jirislaby@xxxxxxxxxx> wrote:
The port lock is not always held when calling serial8250_clear_IER().
When an oops is in progress, the lock is tried to be taken and when it
is not, a warning is issued:
Yes, and that is a potential deadlock. The warning is correct.
Therefore, remove the annotation as it doesn't hold for all invocations.
... because those invocations are broken by design.
The other option would be to make the lockdep test conditional on
'oops_in_progress' or pass 'locked' from serial8250_console_write(). I
don't think, that is worth it.
The proper thing to do is to fix the invocation. The upcoming atomic
console implementation for the 8250 does exactly that.
If this patch gets accepted (which it appears it will be), I will revert
it in my series implementing the 8250 atomic console.