[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.02.1107272029430.2660@ionos>
Date: Wed, 27 Jul 2011 20:32:40 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: "N, Mugunthan V" <mugunthanvnm@...com>
cc: LKML <linux-kernel@...r.kernel.org>,
linux-rt-users <linux-rt-users@...r.kernel.org>
Subject: RE: [ANNOUNCE] 3.0-rt3
On Wed, 27 Jul 2011, N, Mugunthan V wrote:
Please do not top post.
> I am testing 3.0-rt3 on AM3517 - Arm Cortex A8. As the kernel from the
> mainline is not booting I am using a patch to boot AM3517 kernel on top of
> the mainline kernel. Its crashing when I start hackbench and cyclictest.
>
> There were two warnings while starting the test and then the kernel crashes.
> Attaching the patch and the rt-config file.
>
> [ 266.001220] BUG: sleeping function called from invalid context at
> kernel/rtmutex.c:645
That should be fixed by the patch below.
> [ 267.494995] ------------[ cut here ]------------
> [ 267.495086] WARNING: at kernel/lockdep.c:939 __bfs+0x1f8/0x254()
Could you please disable CONFIG_RCU_BOOST ?
Thanks,
tglx
Index: linux-2.6/arch/arm/include/asm/mmu.h
===================================================================
--- linux-2.6.orig/arch/arm/include/asm/mmu.h
+++ linux-2.6/arch/arm/include/asm/mmu.h
@@ -6,7 +6,7 @@
typedef struct {
#ifdef CONFIG_CPU_HAS_ASID
unsigned int id;
- spinlock_t id_lock;
+ raw_spinlock_t id_lock;
#endif
unsigned int kvm_seq;
} mm_context_t;
Index: linux-2.6/arch/arm/mm/context.c
===================================================================
--- linux-2.6.orig/arch/arm/mm/context.c
+++ linux-2.6/arch/arm/mm/context.c
@@ -31,7 +31,7 @@ DEFINE_PER_CPU(struct mm_struct *, curre
void __init_new_context(struct task_struct *tsk, struct mm_struct *mm)
{
mm->context.id = 0;
- spin_lock_init(&mm->context.id_lock);
+ raw_spin_lock_init(&mm->context.id_lock);
}
static void flush_context(void)
@@ -58,7 +58,7 @@ static void set_mm_context(struct mm_str
* the broadcast. This function is also called via IPI so the
* mm->context.id_lock has to be IRQ-safe.
*/
- spin_lock_irqsave(&mm->context.id_lock, flags);
+ raw_spin_lock_irqsave(&mm->context.id_lock, flags);
if (likely((mm->context.id ^ cpu_last_asid) >> ASID_BITS)) {
/*
* Old version of ASID found. Set the new one and
@@ -67,7 +67,7 @@ static void set_mm_context(struct mm_str
mm->context.id = asid;
cpumask_clear(mm_cpumask(mm));
}
- spin_unlock_irqrestore(&mm->context.id_lock, flags);
+ raw_spin_unlock_irqrestore(&mm->context.id_lock, flags);
/*
* Set the mm_cpumask(mm) bit for the current CPU.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists