Re: MIPS panic in 2.6.39 (bisected to 7eaceaccab5f)

From: Rob Landley
Date: Sat May 28 2011 - 06:50:20 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/