diff mbox

[Xen-devel,VMID,RESEND,v5,1/2] xen/arm: Move p2m_vmid_allocator_init() inside setup_virt_paging()

Message ID 1481872588-10876-1-git-send-email-bhupinder.thakur@linaro.org
State Accepted
Commit 3ca8573f8b81b2ff8d14c0fb29260420f868ab7a
Headers show

Commit Message

Bhupinder Thakur Dec. 16, 2016, 7:16 a.m. UTC
Since VMIDs are related to 2nd stage address translation, it makes more sense
to move the call to p2m_vmid_allocator_init(), which initializes the vmid
allocation bitmap, inside setup_virt_paging(), where 2nd stage address translation
is set up.

Signed-off-by: Bhupinder Thakur <bhupinder.thakur@linaro.org>
Reviewed-by: Julien Grall <julien.grall@arm.com>
---
 xen/arch/arm/p2m.c        | 5 ++++-
 xen/arch/arm/setup.c      | 2 --
 xen/include/asm-arm/p2m.h | 3 ---
 3 files changed, 4 insertions(+), 6 deletions(-)

Comments

Stefano Stabellini Dec. 16, 2016, 6:49 p.m. UTC | #1
Both patches applied.

FYI most committers/reviewers prefer to have a [PATCH 0/NUM] email
before the actual patches, so that patches are all properly threaded as
replies (when using git-send-email --in-reply-to=). For example:

https://lkml.org/lkml/2016/12/15/654

I don't particularly care about this, but other might.

Cheers,

Stefano

On Fri, 16 Dec 2016, Bhupinder Thakur wrote:
> Since VMIDs are related to 2nd stage address translation, it makes more sense
> to move the call to p2m_vmid_allocator_init(), which initializes the vmid
> allocation bitmap, inside setup_virt_paging(), where 2nd stage address translation
> is set up.
> 
> Signed-off-by: Bhupinder Thakur <bhupinder.thakur@linaro.org>
> Reviewed-by: Julien Grall <julien.grall@arm.com>
> ---
>  xen/arch/arm/p2m.c        | 5 ++++-
>  xen/arch/arm/setup.c      | 2 --
>  xen/include/asm-arm/p2m.h | 3 ---
>  3 files changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
> index cc5634b..2327509 100644
> --- a/xen/arch/arm/p2m.c
> +++ b/xen/arch/arm/p2m.c
> @@ -1241,7 +1241,7 @@ static spinlock_t vmid_alloc_lock = SPIN_LOCK_UNLOCKED;
>   */
>  static DECLARE_BITMAP(vmid_mask, MAX_VMID);
>  
> -void p2m_vmid_allocator_init(void)
> +static void p2m_vmid_allocator_init(void)
>  {
>      set_bit(INVALID_VMID, vmid_mask);
>  }
> @@ -1659,6 +1659,9 @@ void __init setup_virt_paging(void)
>  #endif
>      printk("P2M: %d levels with order-%d root, VTCR 0x%lx\n",
>             4 - P2M_ROOT_LEVEL, P2M_ROOT_ORDER, val);
> +
> +    p2m_vmid_allocator_init();
> +
>      /* It is not allowed to concatenate a level zero root */
>      BUG_ON( P2M_ROOT_LEVEL == 0 && P2M_ROOT_ORDER > 0 );
>      setup_virt_paging_one((void *)val);
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 38eb888..ac49515 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -789,8 +789,6 @@ void __init start_xen(unsigned long boot_phys_offset,
>  
>      gic_init();
>  
> -    p2m_vmid_allocator_init();
> -
>      softirq_init();
>  
>      tasklet_subsys_init();
> diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
> index fdb6b47..0987be2 100644
> --- a/xen/include/asm-arm/p2m.h
> +++ b/xen/include/asm-arm/p2m.h
> @@ -152,9 +152,6 @@ void p2m_altp2m_check(struct vcpu *v, uint16_t idx)
>      /* Not supported on ARM. */
>  }
>  
> -/* Initialise vmid allocator */
> -void p2m_vmid_allocator_init(void);
> -
>  /* Second stage paging setup, to be called on all CPUs */
>  void setup_virt_paging(void);
>  
> -- 
> 2.7.4
>
diff mbox

Patch

diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index cc5634b..2327509 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -1241,7 +1241,7 @@  static spinlock_t vmid_alloc_lock = SPIN_LOCK_UNLOCKED;
  */
 static DECLARE_BITMAP(vmid_mask, MAX_VMID);
 
-void p2m_vmid_allocator_init(void)
+static void p2m_vmid_allocator_init(void)
 {
     set_bit(INVALID_VMID, vmid_mask);
 }
@@ -1659,6 +1659,9 @@  void __init setup_virt_paging(void)
 #endif
     printk("P2M: %d levels with order-%d root, VTCR 0x%lx\n",
            4 - P2M_ROOT_LEVEL, P2M_ROOT_ORDER, val);
+
+    p2m_vmid_allocator_init();
+
     /* It is not allowed to concatenate a level zero root */
     BUG_ON( P2M_ROOT_LEVEL == 0 && P2M_ROOT_ORDER > 0 );
     setup_virt_paging_one((void *)val);
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 38eb888..ac49515 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -789,8 +789,6 @@  void __init start_xen(unsigned long boot_phys_offset,
 
     gic_init();
 
-    p2m_vmid_allocator_init();
-
     softirq_init();
 
     tasklet_subsys_init();
diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
index fdb6b47..0987be2 100644
--- a/xen/include/asm-arm/p2m.h
+++ b/xen/include/asm-arm/p2m.h
@@ -152,9 +152,6 @@  void p2m_altp2m_check(struct vcpu *v, uint16_t idx)
     /* Not supported on ARM. */
 }
 
-/* Initialise vmid allocator */
-void p2m_vmid_allocator_init(void);
-
 /* Second stage paging setup, to be called on all CPUs */
 void setup_virt_paging(void);