On Thu, Mar 31, 2022 at 05:44:55PM +0200, Arnd Bergmann wrote: > On Thu, Mar 31, 2022 at 1:49 PM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > > > + > > > +static irqreturn_t a64fx_diag_handler(int irq, void *dev_id) > > > +{ > > > + handle_sysrq('c'); > > > > > > Why is this calling this sysrq call? From an interrupt? Why? > > > > And you are hard-coding "c", are you sure? > > This is an actual sysrq driver in the traditional sense, where you can send > a single interrupt to the machine from the outside over a side channel. > > I suggested sysrq instead of just panic() to make it a bit more flexible. > Unfortunately there is no additional data, so it comes down to always > sending the same character. > > It would be possible to make that character configurable with a module > parameter or something like that, but I'm not sure that is an improvement. > Maybe you have another idea for this. Given the interrupt can be dismissed then offering non-fatal actions in response the chassis command seems reasonable. There is some prior art for this sort of feature. AFAICT SGI UV has a similar mechanism that can send an NMI-with-no-side-channel to the kernel. The corresponding driver offers a range of actions using a module parameter: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/platform/uv/uv_nmi.c#n180 I don't think a hardcoded 'c' makes any sense. With a hardcoded argument it is just obfuscation. However it is certainly seems attractive to be able to reuse handle_sysrq() to provide a more powerful set of actions. Daniel.