[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080326.042516.261621639.davem@davemloft.net>
Date: Wed, 26 Mar 2008 04:25:16 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: m.kozlowski@...land.pl
Cc: torvalds@...ux-foundation.org, linux-kernel@...r.kernel.org,
sparclinux@...r.kernel.org
Subject: Re: sparc64 BUG: using smp_processor_id() in preemptible
From: David Miller <davem@...emloft.net>
Date: Wed, 26 Mar 2008 04:16:26 -0700 (PDT)
> From: Mariusz Kozlowski <m.kozlowski@...land.pl>
> Date: Wed, 26 Mar 2008 11:42:07 +0100
>
> > I see lots of these messages on my ultra 60 box.
>
> This is a sparc64 bug.
And this patch should fix it:
commit 69072f6e8e4bd4799d2a54e4ff8771d0657512c1
Author: David S. Miller <davem@...emloft.net>
Date: Wed Mar 26 04:25:00 2008 -0700
[SPARC64]: Fix __get_cpu_var in preemption-enabled area.
Reported by Mariusz Kozlowski.
Signed-off-by: David S. Miller <davem@...emloft.net>
diff --git a/arch/sparc64/mm/tlb.c b/arch/sparc64/mm/tlb.c
index 3f10fc9..a0f000b 100644
--- a/arch/sparc64/mm/tlb.c
+++ b/arch/sparc64/mm/tlb.c
@@ -23,10 +23,11 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers) = { 0, };
void flush_tlb_pending(void)
{
- struct mmu_gather *mp = &__get_cpu_var(mmu_gathers);
+ struct mmu_gather *mp;
preempt_disable();
+ mp = &__get_cpu_var(mmu_gathers);
if (mp->tlb_nr) {
flush_tsb_user(mp);
--
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