* Tony Lindgren <tony@xxxxxxxxxxx> [100902 09:29]: > * Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> [100902 09:18]: > > On Thu, Sep 02, 2010 at 09:20:40AM -0700, Tony Lindgren wrote: > > > >From 253e91b76e104dbdf05c5c3eaf9cbf426972c938 Mon Sep 17 00:00:00 2001 > > > From: Tony Lindgren <tony@xxxxxxxxxxx> > > > Date: Wed, 1 Sep 2010 16:49:13 -0700 > > > Subject: [PATCH 3/6] ARM: Fix v7wbi_tlb_flags for SMP on UP > > > > > > Fix v7wbi_tlb_flags for SMP on UP. Note that we must enable MULTI_TLB > > > to avoid undefined reference to cpu_tlb error. > > > > This isn't required, as it is already covered by my patch. > > Yup, seems to be working without this patch. Correction, only boots on SMP hardawre. On UP hardware I still need the following patch. Left out forcing MULTI_TLB as looks like your patch already does that. Also noticed I'm now getting unhandled fault on SMP system which I was not getting earlier. Will try to track it down. Tony
From: Tony Lindgren <tony@xxxxxxxxxxx> Date: Wed, 1 Sep 2010 16:49:13 -0700 Subject: [PATCH] ARM: Fix v7wbi_tlb_flags for SMP on UP Fix v7wbi_tlb_flags for SMP on UP. Note that depends on MULTI_TLB to avoid undefined reference to cpu_tlb error. Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h index 1fd0db9..692e9cf 100644 --- a/arch/arm/include/asm/tlbflush.h +++ b/arch/arm/include/asm/tlbflush.h @@ -189,20 +189,29 @@ # define v6wbi_always_flags (-1UL) #endif +#define v7wbi_tlb_flags_common (TLB_WB | TLB_DCLEAN) #define v7wbi_tlb_flags_smp (TLB_WB | TLB_DCLEAN | TLB_V7_IS_BTB | \ TLB_V7_UIS_FULL | TLB_V7_UIS_PAGE | TLB_V7_UIS_ASID) #define v7wbi_tlb_flags_up (TLB_WB | TLB_DCLEAN | TLB_BTB | \ TLB_V6_U_FULL | TLB_V6_U_PAGE | TLB_V6_U_ASID) #ifdef CONFIG_SMP +#ifdef CONFIG_SMP_ON_UP +#define v7wbi_tlb_flags (v7wbi_tlb_flags_smp | v7wbi_tlb_flags_up) +#else #define v7wbi_tlb_flags v7wbi_tlb_flags_smp +#endif #else #define v7wbi_tlb_flags v7wbi_tlb_flags_up #endif #ifdef CONFIG_CPU_TLB_V7 # define v7wbi_possible_flags v7wbi_tlb_flags -# define v7wbi_always_flags v7wbi_tlb_flags +# ifdef CONFIG_SMP_ON_UP +# define v7wbi_always_flags v7wbi_tlb_flags_common +# else +# define v7wbi_always_flags v7wbi_tlb_flags +# endif # ifdef _TLB # define MULTI_TLB 1 # else