Mailing List Archive

[xen master] xen/arm: xen/arm: Reinforce use of is_hardware_domain
commit 784d70d68342d20074d88ee8d8bab41b9210505f
Author: Luca Fancellu <luca.fancellu@arm.com>
AuthorDate: Wed Apr 14 10:14:02 2021 +0100
Commit: Julien Grall <jgrall@amazon.com>
CommitDate: Thu Apr 15 18:06:21 2021 +0100

xen/arm: xen/arm: Reinforce use of is_hardware_domain

There are a few places on Arm where we use pretty much an open-coded
version of is_hardware_domain(). The main difference, is the helper
will also block speculation (not yet implemented on Arm).

The existing users are not in hot path, so blocking speculation
would not hurt when it is implemented. So remove the open-coded
version within the arm codebase.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
[julieng: Rework the commit message]
Acked-by: Julien Grall <jgrall@amazon.com>
---
xen/arch/arm/irq.c | 2 +-
xen/drivers/passthrough/arm/ipmmu-vmsa.c | 2 +-
xen/drivers/passthrough/arm/smmu-v3.c | 2 +-
xen/drivers/passthrough/arm/smmu.c | 2 +-
xen/include/asm-arm/domain.h | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index b71b099e6f..b761d90c40 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -412,7 +412,7 @@ bool is_assignable_irq(unsigned int irq)
*/
bool irq_type_set_by_domain(const struct domain *d)
{
- return (d == hardware_domain);
+ return is_hardware_domain(d);
}

/*
diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index aef358d880..8b8e3a00ba 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -1168,7 +1168,7 @@ static int ipmmu_reassign_device(struct domain *s, struct domain *t,
int ret = 0;

/* Don't allow remapping on other domain than hwdom */
- if ( t && t != hardware_domain )
+ if ( t && !is_hardware_domain(t) )
return -EPERM;

if ( t == s )
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index 53d150cdb6..d115df7320 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -3366,7 +3366,7 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
int ret = 0;

/* Don't allow remapping on other domain than hwdom */
- if (t && t != hardware_domain)
+ if ( t && !is_hardware_domain(t) )
return -EPERM;

if (t == s)
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index fab7be8b48..24ac4f3a80 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -2771,7 +2771,7 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
int ret = 0;

/* Don't allow remapping on other domain than hwdom */
- if (t && t != hardware_domain)
+ if ( t && !is_hardware_domain(t) )
return -EPERM;

if (t == s)
diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
index 1da90f207d..0a74df9931 100644
--- a/xen/include/asm-arm/domain.h
+++ b/xen/include/asm-arm/domain.h
@@ -30,7 +30,7 @@ enum domain_type {
#endif

/* The hardware domain has always its memory direct mapped. */
-#define is_domain_direct_mapped(d) ((d) == hardware_domain)
+#define is_domain_direct_mapped(d) is_hardware_domain(d)

struct vtimer {
struct vcpu *v;
--
generated by git-patchbot for /home/xen/git/xen.git#master