diff mbox

xen/arm: gic: don't use dom0 variable in gicv_setup

Message ID 1384883745-28844-1-git-send-email-julien.grall@linaro.org
State Accepted, archived
Headers show

Commit Message

Julien Grall Nov. 19, 2013, 5:55 p.m. UTC
The commit 99bf30a "xen: arm: define guest virtual platform in API headers"
modifies gicv_setup to either use harcoded addresses for guest or hardware
addresses for dom0. In the latter case, the variable dom0 is not yet
initialized. dom0 receives assignment by the return of domain_create which
calls gicv_setup.
Use the ID to know whether the domain is dom0 or not.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
---
 xen/arch/arm/gic.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Ian Campbell Nov. 20, 2013, 9:44 a.m. UTC | #1
On Tue, 2013-11-19 at 17:55 +0000, Julien Grall wrote:
> The commit 99bf30a "xen: arm: define guest virtual platform in API headers"
> modifies gicv_setup to either use harcoded addresses for guest or hardware
> addresses for dom0. In the latter case, the variable dom0 is not yet
> initialized. dom0 receives assignment by the return of domain_create which
> calls gicv_setup.
> Use the ID to know whether the domain is dom0 or not.

Oops, I missed this because the platform I was testing (fastmodel ==
vexpress) happens to have the same GIC addresses as the virtual
platform.

> Signed-off-by: Julien Grall <julien.grall@linaro.org>

Acked + applied.

I investigated is_hardware_domain and friends but they relies on
d->is_privileged which is also not yet set.

Ian.
diff mbox

Patch

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 3b1ef3a..d5ac770 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -881,7 +881,7 @@  int gicv_setup(struct domain *d)
      * Domain 0 gets the hardware address.
      * Guests get the virtual platform layout.
      */
-    if ( d == dom0 )
+    if ( d->domain_id == 0 )
     {
         d->arch.vgic.dbase = gic.dbase;
         d->arch.vgic.cbase = gic.cbase;