Message ID | 20130604181030.GA18614@n2100.arm.linux.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 4 Jun 2013, Russell King - ARM Linux wrote: > On Tue, Jun 04, 2013 at 02:07:29PM -0400, Nicolas Pitre wrote: > > Alternatively, the following could be done: > > > > #ifdef CONFIG_CPU_PJ4B > > > > .equ cpu_pj4b_switch_mm, cpu_v7_switch_mm > > .equ cpu_pj4b_set_pte_ex, cpu_v7_set_pte_ex > > No, that doesn't work. I did forget a hunk from my patch though, which > needs the pj4b symbols to be global: .macro globl_equ x, y .globl x .equ x, y .endm .globl_equ cpu_pj4b_switch_mm, cpu_v7_switch_mm .globl_equ cpu_pj4b_set_pte_ex, cpu_v7_set_pte_ex ... Nicolas
On Tue, Jun 04, 2013 at 02:19:32PM -0400, Nicolas Pitre wrote: > On Tue, 4 Jun 2013, Russell King - ARM Linux wrote: > > > On Tue, Jun 04, 2013 at 02:07:29PM -0400, Nicolas Pitre wrote: > > > Alternatively, the following could be done: > > > > > > #ifdef CONFIG_CPU_PJ4B > > > > > > .equ cpu_pj4b_switch_mm, cpu_v7_switch_mm > > > .equ cpu_pj4b_set_pte_ex, cpu_v7_set_pte_ex > > > > No, that doesn't work. I did forget a hunk from my patch though, which > > needs the pj4b symbols to be global: > > .macro globl_equ x, y > .globl x > .equ x, y > .endm > > .globl_equ cpu_pj4b_switch_mm, cpu_v7_switch_mm > .globl_equ cpu_pj4b_set_pte_ex, cpu_v7_set_pte_ex Which is really no different from doing what I did.
On Tue, 4 Jun 2013, Russell King - ARM Linux wrote: > On Tue, Jun 04, 2013 at 02:19:32PM -0400, Nicolas Pitre wrote: > > On Tue, 4 Jun 2013, Russell King - ARM Linux wrote: > > > > > On Tue, Jun 04, 2013 at 02:07:29PM -0400, Nicolas Pitre wrote: > > > > Alternatively, the following could be done: > > > > > > > > #ifdef CONFIG_CPU_PJ4B > > > > > > > > .equ cpu_pj4b_switch_mm, cpu_v7_switch_mm > > > > .equ cpu_pj4b_set_pte_ex, cpu_v7_set_pte_ex > > > > > > No, that doesn't work. I did forget a hunk from my patch though, which > > > needs the pj4b symbols to be global: > > > > .macro globl_equ x, y > > .globl x > > .equ x, y > > .endm > > > > .globl_equ cpu_pj4b_switch_mm, cpu_v7_switch_mm > > .globl_equ cpu_pj4b_set_pte_ex, cpu_v7_set_pte_ex > > Which is really no different from doing what I did. This can be wrapped inside #ifdef CONFIG_CPU_PJ4B clearing the symbol aliasing confusion I mentioned when not configured, and can be done in a single location instead of being spread all over. Other than that, this is functionally equivalent to what you did indeed. Nicolas
On 06/04/2013 08:32 PM, Nicolas Pitre wrote: > On Tue, 4 Jun 2013, Russell King - ARM Linux wrote: > >> On Tue, Jun 04, 2013 at 02:19:32PM -0400, Nicolas Pitre wrote: >>> On Tue, 4 Jun 2013, Russell King - ARM Linux wrote: >>> >>>> On Tue, Jun 04, 2013 at 02:07:29PM -0400, Nicolas Pitre wrote: >>>>> Alternatively, the following could be done: >>>>> >>>>> #ifdef CONFIG_CPU_PJ4B >>>>> >>>>> .equ cpu_pj4b_switch_mm, cpu_v7_switch_mm >>>>> .equ cpu_pj4b_set_pte_ex, cpu_v7_set_pte_ex >>>> >>>> No, that doesn't work. I did forget a hunk from my patch though, which >>>> needs the pj4b symbols to be global: >>> >>> .macro globl_equ x, y >>> .globl x >>> .equ x, y >>> .endm >>> >>> .globl_equ cpu_pj4b_switch_mm, cpu_v7_switch_mm >>> .globl_equ cpu_pj4b_set_pte_ex, cpu_v7_set_pte_ex >> >> Which is really no different from doing what I did. > > This can be wrapped inside #ifdef CONFIG_CPU_PJ4B clearing the symbol > aliasing confusion I mentioned when not configured, and can be done in a > single location instead of being spread all over. Other than that, this > is functionally equivalent to what you did indeed. > > Russell, Nicolas, Thanks for both of you for help. As you both agree that your variants are functionally equivalent and as the variant of Nicolas seems to be more easy to debug, I will adopt Nicolas' version. Unless, there was a drawback you didn't mention yet. Regards, Gregory
diff --git a/arch/arm/include/asm/glue-proc.h b/arch/arm/include/asm/glue-proc.h index ac1dd54..8017e94 100644 --- a/arch/arm/include/asm/glue-proc.h +++ b/arch/arm/include/asm/glue-proc.h @@ -230,6 +230,15 @@ # endif #endif +#ifdef CONFIG_CPU_PJ4B +# ifdef CPU_NAME +# undef MULTI_CPU +# define MULTI_CPU +# else +# define CPU_NAME cpu_pj4b +# endif +#endif + #ifndef MULTI_CPU #define cpu_proc_init __glue(CPU_NAME,_proc_init) #define cpu_proc_fin __glue(CPU_NAME,_proc_fin)