diff mbox

[v1,01/12] x86/smp: Make start_secondary() and initial_pg_pmd visible globally

Message ID 1453498558-6028-2-git-send-email-boris.ostrovsky@oracle.com
State New, archived
Headers show

Commit Message

Boris Ostrovsky Jan. 22, 2016, 9:35 p.m. UTC
Xen's HVMlite guests will want to use them.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
---
 arch/x86/include/asm/smp.h |    1 +
 arch/x86/kernel/head_32.S  |    2 +-
 arch/x86/kernel/smpboot.c  |    2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

Comments

David Vrabel Jan. 25, 2016, 10:53 a.m. UTC | #1
On 22/01/16 21:35, Boris Ostrovsky wrote:
> Xen's HVMlite guests will want to use them.

Please explain in detail why they are needed.

David
Boris Ostrovsky Jan. 25, 2016, 3:30 p.m. UTC | #2
On 01/25/2016 05:53 AM, David Vrabel wrote:
> On 22/01/16 21:35, Boris Ostrovsky wrote:
>> Xen's HVMlite guests will want to use them.
> Please explain in detail why they are needed.
>


Actually, start_secondary is not needed anymore, I removed its use at 
some point.

initial_pg_pmd (together with initial_page_table) are not really 
required  --- I just used them for temporary page tables in the hvmlite 
startup code instead of allocating dedicated pages for that. Perhaps 
there is other (Xen-specific) area that I can use for that. Once we jump 
to startup_32 these tables are no longer in use.

-boris
Borislav Petkov Jan. 26, 2016, 9:58 p.m. UTC | #3
On Mon, Jan 25, 2016 at 10:30:26AM -0500, Boris Ostrovsky wrote:
> initial_pg_pmd (together with initial_page_table) are not really required
> --- I just used them for temporary page tables in the hvmlite startup code
> instead of allocating dedicated pages for that. Perhaps there is other
> (Xen-specific) area that I can use for that. Once we jump to startup_32
> these tables are no longer in use.

Then please create and use your own. There's no need for this short
temporary dependency during boot, especially if one day we go and change
things and break xen in the process.
diff mbox

Patch

diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index dfcf072..739abb0 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -147,6 +147,7 @@  void x86_idle_thread_init(unsigned int cpu, struct task_struct *idle);
 
 void smp_store_boot_cpu_info(void);
 void smp_store_cpu_info(int id);
+void start_secondary(void *unused);
 #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
 
 #else /* !CONFIG_SMP */
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index 6bc9ae2..eeb5c42 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -666,7 +666,7 @@  ENTRY(setup_once_ref)
 __PAGE_ALIGNED_BSS
 	.align PAGE_SIZE
 #ifdef CONFIG_X86_PAE
-initial_pg_pmd:
+ENTRY(initial_pg_pmd)
 	.fill 1024*KPMDS,4,0
 #else
 ENTRY(initial_page_table)
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 24d57f7..cba00bc 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -199,7 +199,7 @@  static int enable_start_cpu0;
 /*
  * Activate a secondary processor.
  */
-static void notrace start_secondary(void *unused)
+void notrace start_secondary(void *unused)
 {
 	/*
 	 * Don't put *anything* before cpu_init(), SMP booting is too