On Tue, 15 Feb 2022, John Ogness wrote:
drm_fb_helper_damage() is acquiring spinlock_t (helper->damage_lock), while it can be called from contexts where raw_spinlock_t is held (e.g. console_owner lock obtained on vprintk_emit() codepath).
As the critical sections protected by damage_lock are super-tiny, let's fix this by converting it to raw_spinlock_t in order not to violate PREEMPT_RT-imposed lock nesting rules.
This fixes the splat below.
============================= [ BUG: Invalid wait context ] 5.17.0-rc4-00002-gd567f5db412e #1 Not tainted
rc4. Is this also the case in the RT tree which includes John's printk changes?
In the RT tree, the fbcon's write() callback is only called in preemptible() contexts. So this is only a mainline issue.
The series I recently posted to LKML [0] should also address this issue (if/when it gets accepted).
John
[0] https://lore.kernel.org/lkml/20220207194323.273637-1-john.ogness@linutronix....
Thanks for confirmation, seems like this problem is indeed cured by your series.
I still believe though that we shouldn't let 5.17 released with this warning being emitted into dmesg, so I'd suggest going with my patch for mainline, and revert it in your series on top of it.
Thanks,