Stephen Rothwell <s...@canb.auug.org.au> wrote: > [This time from a good email address :-)] > > Hi Mikey, > > On Mon, 5 Aug 2013 17:28:06 +1000 Michael Neuling > <mi...@neuling.org> wrote: > > > > +++ b/arch/powerpc/kernel/traps.c > > @@ -1296,43 +1294,56 @@ void vsx_unavailable_exception(struct pt_regs *regs) > > die("Unrecoverable VSX Unavailable Exception", regs, SIGABRT); > > } > > > > +#ifdef CONFIG_PPC64 > > void facility_unavailable_exception(struct pt_regs *regs) > > { > > static char *facility_strings[] = { > > - "FPU", > > - "VMX/VSX", > > - "DSCR", > > - "PMU SPRs", > > - "BHRB", > > - "TM", > > - "AT", > > - "EBB", > > - "TAR", > > + [FSCR_FP_LG] = "FPU", > > + [FSCR_VECVSX_LG] = "VMX/VSX", > > + [FSCR_DSCR_LG] = "DSCR", > > + [FSCR_PM_LG] = "PMU SPRs", > > + [FSCR_BHRB_LG] = "BHRB", > > + [FSCR_TM_LG] = "TM", > > + [FSCR_EBB_LG] = "EBB", > > + [FSCR_TAR_LG] = "TAR", > > I assume that you intentionally dropped "AT".
Yeah. > > > }; > > - char *facility, *prefix; > > + char *facility; > > u64 value; > > + u8 status; > > + bool hv; > > > > if (regs->trap == 0xf60) { > > value = mfspr(SPRN_FSCR); > > - prefix = ""; > > + hv = false; > > } else { > > value = mfspr(SPRN_HFSCR); > > - prefix = "Hypervisor "; > > + hv = true; > > } > > Maybe: > hv = regs->trap == 0xf60; > if (hv) > value = mfspr(SPRN_HFSCR); > else > value = mfspr(SPRN_HFSCR); > or > value = mfspr(hv ? SPRN_HFSCR : SPRN_HFSCR); ok. > > > - value = value >> 56; > > + status = value >> 56; > > + > > + if (status < ARRAY_SIZE(facility_strings)) > > + facility = facility_strings[status]; > > + else > > + facility = "unknown"; > > For entries in the array that are not set, this will give facility == > NULL. Is that what you intended? No it wasn't, I'll catch that case, thanks. > > > pr_err("%sFacility '%s' unavailable, exception at 0x%lx, MSR=%lx\n", > > - prefix, facility, regs->nip, regs->msr); > > + hv ? "Hypervisor ":"", facility, regs->nip, regs->msr); > > ... and this may attempt to print a NULL pointer with %s. Also please > put spaces around the : . OK. Mikey _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev