On 05/27/2011 09:00 AM, Ralf Baechle wrote: > On Fri, May 27, 2011 at 08:55:13AM +0100, Ralf Baechle wrote: > >>> Have you guys been able to reproduce the problem? >> >> Staring at the disassembly was good enough, I think. The commit you >> bisected is restructuring some of the hardware probing code for Malta and >> seems to result in gcmp_present being set without _gcmp_base having been >> assigned, thus the null pointer dereference. > > Can you test below patch? Thanks, > > Ralf > > Since af3a1f6f4813907e143f87030cde67a9971db533 the Malta code does no > longer probe for presence of GCMP if CMP is not configured. This means > that the variable gcmp_present well be left at its default value of -1 > which normally is meant to indicate that GCMP has not yet been mmapped. > This non-zero value is now interpreted as GCMP being present resulting > in a write attempt to a GCMP register resulting in a crash. > > Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx> patch patch patch... > diff --git a/arch/mips/mti-malta/malta-init.c b/arch/mips/mti-malta/malta-init.c > index 31180c3..4163d09e 100644 > --- a/arch/mips/mti-malta/malta-init.c > +++ b/arch/mips/mti-malta/malta-init.c Your missing hunk at the top of this file is: @@ -29,6 +29,7 @@ #include <asm/system.h> #include <asm/cacheflush.h> #include <asm/traps.h> +#include <asm/smp-ops.h> #include <asm/gcmpregs.h> #include <asm/mips-boards/prom.h> And then the patch works! Yay! Thank you. Signed-off-by: Rob Landley <rob@xxxxxxxxxxx> Rob