On 2019-03-14, Daniel Vetter daniel@ffwll.ch wrote:
That's why we came up with the trylock + immediate bail out design if that fails. Plus really only render the oops int whatever is the current display buffer, so that we don't have to do any hw programming at all.
I think this is your best option. The real work will be identifying any/all spin locking that currently exists. For all of those, the code needs to change to:
1. trylock if oops_in_progress, otherwise spinlock
2. if trylock fails, the code must have a sane failure
The 2nd point will be the difficult one. For example, you may have functions without a return value taking spinlocks. But now those functions could fail.
John Ogness