Re: [PATCH] powerpc/64: Remove unused generic_secondary_thread_init()
On Wed, 19 Aug 2020 11:57:04 +1000, Michael Ellerman wrote: > The last caller was removed in 2014 in commit fb5a515704d7 ("powerpc: > Remove platforms/wsp and associated pieces"). > > As Jordan noticed even though there are no callers, the code above in > fsl_secondary_thread_init() falls through into > generic_secondary_thread_init(). So we can remove the _GLOBAL but not > the body of the function. > > [...] Applied to powerpc/next. [1/1] powerpc/64: Remove unused generic_secondary_thread_init() https://git.kernel.org/powerpc/c/529d2bd56ada4b8a4904909042792879868208cd cheers
[PATCH] powerpc/64: Remove unused generic_secondary_thread_init()
The last caller was removed in 2014 in commit fb5a515704d7 ("powerpc: Remove platforms/wsp and associated pieces"). As Jordan noticed even though there are no callers, the code above in fsl_secondary_thread_init() falls through into generic_secondary_thread_init(). So we can remove the _GLOBAL but not the body of the function. However because fsl_secondary_thread_init() is inside #ifdef CONFIG_PPC_BOOK3E, we can never reach the body of generic_secondary_thread_init() unless CONFIG_PPC_BOOK3E is enabled, so we can wrap the whole thing in a single #ifdef. Signed-off-by: Michael Ellerman --- v2: Remove the symbol but not the body. --- arch/powerpc/include/asm/smp.h | 1 - arch/powerpc/kernel/head_64.S | 7 ++- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h index 0d00faf8f119..c074bff1ec30 100644 --- a/arch/powerpc/include/asm/smp.h +++ b/arch/powerpc/include/asm/smp.h @@ -245,7 +245,6 @@ extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); * 64-bit but defining them all here doesn't harm */ extern void generic_secondary_smp_init(void); -extern void generic_secondary_thread_init(void); extern unsigned long __secondary_hold_spinloop; extern unsigned long __secondary_hold_acknowledge; extern char __secondary_hold; diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 0e05a9a47a4b..1510b2a56669 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S @@ -300,9 +300,6 @@ _GLOBAL(fsl_secondary_thread_init) rlwimi r3, r3, 30, 2, 30 mtspr SPRN_PIR, r3 1: -#endif - -_GLOBAL(generic_secondary_thread_init) mr r24,r3 /* turn on 64-bit mode */ @@ -312,13 +309,13 @@ _GLOBAL(generic_secondary_thread_init) bl relative_toc tovirt(r2,r2) -#ifdef CONFIG_PPC_BOOK3E /* Book3E initialization */ mr r3,r24 bl book3e_secondary_thread_init -#endif b generic_secondary_common_init +#endif /* CONFIG_PPC_BOOK3E */ + /* * On pSeries and most other platforms, secondary processors spin * in the following code. -- 2.25.1
Re: [PATCH] powerpc/64: Remove unused generic_secondary_thread_init()
Jordan Niethe writes: > On Tue, May 26, 2020 at 4:36 PM Michael Ellerman wrote: >> >> The last caller was removed in 2014 in commit fb5a515704d7 ("powerpc: >> Remove platforms/wsp and associated pieces"). >> >> Once generic_secondary_thread_init() is removed there are no longer >> any uses of book3e_secondary_thread_init() or >> generic_secondary_common_init so remove them too. >> >> Signed-off-by: Michael Ellerman >> --- >> arch/powerpc/include/asm/smp.h | 1 - >> arch/powerpc/kernel/exceptions-64e.S | 4 >> arch/powerpc/kernel/head_64.S| 18 -- >> 3 files changed, 23 deletions(-) >> >> diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h >> index 49a25e2400f2..81a49566ccd8 100644 >> --- a/arch/powerpc/include/asm/smp.h >> +++ b/arch/powerpc/include/asm/smp.h >> @@ -243,7 +243,6 @@ extern void arch_send_call_function_ipi_mask(const >> struct cpumask *mask); >> * 64-bit but defining them all here doesn't harm >> */ >> extern void generic_secondary_smp_init(void); >> -extern void generic_secondary_thread_init(void); >> extern unsigned long __secondary_hold_spinloop; >> extern unsigned long __secondary_hold_acknowledge; >> extern char __secondary_hold; >> diff --git a/arch/powerpc/kernel/exceptions-64e.S >> b/arch/powerpc/kernel/exceptions-64e.S >> index d9ed79415100..9f9e8686798b 100644 >> --- a/arch/powerpc/kernel/exceptions-64e.S >> +++ b/arch/powerpc/kernel/exceptions-64e.S >> @@ -1814,10 +1814,6 @@ _GLOBAL(book3e_secondary_core_init) >> 1: mtlrr28 >> blr >> >> -_GLOBAL(book3e_secondary_thread_init) >> - mflrr28 >> - b 3b >> - >> .globl init_core_book3e >> init_core_book3e: >> /* Establish the interrupt vector base */ >> diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S >> index 0e05a9a47a4b..4ae2c18c5fc6 100644 >> --- a/arch/powerpc/kernel/head_64.S >> +++ b/arch/powerpc/kernel/head_64.S >> @@ -302,23 +302,6 @@ _GLOBAL(fsl_secondary_thread_init) >> 1: >> #endif > > Nothing directly calls generic_secondary_thread_init() but I think > fsl_secondary_thread_init() which is directly above "falls through" > into it. fsl_secondary_thread_init() still has callers. Damnit, you're right, I love deleting code! Thanks for reviewing. I'll send a v2. cheers
Re: [PATCH] powerpc/64: Remove unused generic_secondary_thread_init()
On Tue, May 26, 2020 at 4:36 PM Michael Ellerman wrote: > > The last caller was removed in 2014 in commit fb5a515704d7 ("powerpc: > Remove platforms/wsp and associated pieces"). > > Once generic_secondary_thread_init() is removed there are no longer > any uses of book3e_secondary_thread_init() or > generic_secondary_common_init so remove them too. > > Signed-off-by: Michael Ellerman > --- > arch/powerpc/include/asm/smp.h | 1 - > arch/powerpc/kernel/exceptions-64e.S | 4 > arch/powerpc/kernel/head_64.S| 18 -- > 3 files changed, 23 deletions(-) > > diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h > index 49a25e2400f2..81a49566ccd8 100644 > --- a/arch/powerpc/include/asm/smp.h > +++ b/arch/powerpc/include/asm/smp.h > @@ -243,7 +243,6 @@ extern void arch_send_call_function_ipi_mask(const struct > cpumask *mask); > * 64-bit but defining them all here doesn't harm > */ > extern void generic_secondary_smp_init(void); > -extern void generic_secondary_thread_init(void); > extern unsigned long __secondary_hold_spinloop; > extern unsigned long __secondary_hold_acknowledge; > extern char __secondary_hold; > diff --git a/arch/powerpc/kernel/exceptions-64e.S > b/arch/powerpc/kernel/exceptions-64e.S > index d9ed79415100..9f9e8686798b 100644 > --- a/arch/powerpc/kernel/exceptions-64e.S > +++ b/arch/powerpc/kernel/exceptions-64e.S > @@ -1814,10 +1814,6 @@ _GLOBAL(book3e_secondary_core_init) > 1: mtlrr28 > blr > > -_GLOBAL(book3e_secondary_thread_init) > - mflrr28 > - b 3b > - > .globl init_core_book3e > init_core_book3e: > /* Establish the interrupt vector base */ > diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S > index 0e05a9a47a4b..4ae2c18c5fc6 100644 > --- a/arch/powerpc/kernel/head_64.S > +++ b/arch/powerpc/kernel/head_64.S > @@ -302,23 +302,6 @@ _GLOBAL(fsl_secondary_thread_init) > 1: > #endif Nothing directly calls generic_secondary_thread_init() but I think fsl_secondary_thread_init() which is directly above "falls through" into it. fsl_secondary_thread_init() still has callers. > > -_GLOBAL(generic_secondary_thread_init) > - mr r24,r3 > - > - /* turn on 64-bit mode */ > - bl enable_64b_mode > - > - /* get a valid TOC pointer, wherever we're mapped at */ > - bl relative_toc > - tovirt(r2,r2) > - > -#ifdef CONFIG_PPC_BOOK3E > - /* Book3E initialization */ > - mr r3,r24 > - bl book3e_secondary_thread_init > -#endif > - b generic_secondary_common_init > - > /* > * On pSeries and most other platforms, secondary processors spin > * in the following code. > @@ -385,7 +368,6 @@ _GLOBAL(generic_secondary_smp_init) > 20: > #endif > > -generic_secondary_common_init: > /* Set up a paca value for this processor. Since we have the > * physical cpu id in r24, we need to search the pacas to find > * which logical id maps to our physical one. > -- > 2.25.1 >
[PATCH] powerpc/64: Remove unused generic_secondary_thread_init()
The last caller was removed in 2014 in commit fb5a515704d7 ("powerpc: Remove platforms/wsp and associated pieces"). Once generic_secondary_thread_init() is removed there are no longer any uses of book3e_secondary_thread_init() or generic_secondary_common_init so remove them too. Signed-off-by: Michael Ellerman --- arch/powerpc/include/asm/smp.h | 1 - arch/powerpc/kernel/exceptions-64e.S | 4 arch/powerpc/kernel/head_64.S| 18 -- 3 files changed, 23 deletions(-) diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h index 49a25e2400f2..81a49566ccd8 100644 --- a/arch/powerpc/include/asm/smp.h +++ b/arch/powerpc/include/asm/smp.h @@ -243,7 +243,6 @@ extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); * 64-bit but defining them all here doesn't harm */ extern void generic_secondary_smp_init(void); -extern void generic_secondary_thread_init(void); extern unsigned long __secondary_hold_spinloop; extern unsigned long __secondary_hold_acknowledge; extern char __secondary_hold; diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S index d9ed79415100..9f9e8686798b 100644 --- a/arch/powerpc/kernel/exceptions-64e.S +++ b/arch/powerpc/kernel/exceptions-64e.S @@ -1814,10 +1814,6 @@ _GLOBAL(book3e_secondary_core_init) 1: mtlrr28 blr -_GLOBAL(book3e_secondary_thread_init) - mflrr28 - b 3b - .globl init_core_book3e init_core_book3e: /* Establish the interrupt vector base */ diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 0e05a9a47a4b..4ae2c18c5fc6 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S @@ -302,23 +302,6 @@ _GLOBAL(fsl_secondary_thread_init) 1: #endif -_GLOBAL(generic_secondary_thread_init) - mr r24,r3 - - /* turn on 64-bit mode */ - bl enable_64b_mode - - /* get a valid TOC pointer, wherever we're mapped at */ - bl relative_toc - tovirt(r2,r2) - -#ifdef CONFIG_PPC_BOOK3E - /* Book3E initialization */ - mr r3,r24 - bl book3e_secondary_thread_init -#endif - b generic_secondary_common_init - /* * On pSeries and most other platforms, secondary processors spin * in the following code. @@ -385,7 +368,6 @@ _GLOBAL(generic_secondary_smp_init) 20: #endif -generic_secondary_common_init: /* Set up a paca value for this processor. Since we have the * physical cpu id in r24, we need to search the pacas to find * which logical id maps to our physical one. -- 2.25.1