On 10/19/2017 09:10 AM, Benjamin Herrenschmidt wrote: > On Thu, 2017-10-19 at 00:02 +1100, Michael Ellerman wrote: >> Breno Leitao <lei...@debian.org> writes: >> >>> Currently xmon could call XIVE functions from OPAL even if the XIVE is >>> disabled or does not exist in the system, as in POWER8 machines. This >>> causes the following exception: >>> >>> 1:mon> dx >>> cpu 0x1: Vector: 700 (Program Check) at [c000000423c93450] >>> pc: c00000000009cfa4: opal_xive_dump+0x50/0x68 >>> lr: c0000000000997b8: opal_return+0x0/0x50 >>> >>> This patch simply checks if XIVE is enabled before calling XIVE >>> functions. >> >> Thanks. I'll merge this. >> >> But we should also fix it in skiboot. > > No that's wrong. xive_enabled() is only set if Linux is using native > xive mode but some of those xmon functions dump the emulated state. > > We should fix the actual cause of the crash.
which should be in the OPAL XIVE dump routines then ? Cheers C. > > Cheers, > Ben. > >> cheers >> >>> Suggested-by: Guilherme G. Piccoli <gpicc...@linux.vnet.ibm.com> >>> Signed-off-by: Breno Leitao <lei...@debian.org> >>> --- >>> arch/powerpc/xmon/xmon.c | 6 ++++++ >>> 1 file changed, 6 insertions(+) >>> >>> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c >>> index 4679aeb84767..b34976c4a6ba 100644 >>> --- a/arch/powerpc/xmon/xmon.c >>> +++ b/arch/powerpc/xmon/xmon.c >>> @@ -2508,6 +2508,12 @@ static void dump_xives(void) >>> unsigned long num; >>> int c; >>> >>> + if (!xive_enabled()) { >>> + printf("Xive disabled on this system\n"); >>> + >>> + return; >>> + } >>> + >>> c = inchar(); >>> if (c == 'a') { >>> dump_all_xives(); >>> -- >>> 2.14.2 >