|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v9 7/7] xen/asm-generic: fold struct devarch into struct dev
The current patch is a follow-up to the patch titled:
xen/asm-generic: introduce generic device.h
Also, a prerequisite for this patch is, without which a compilation
error will occur:
xen/arm: switch Arm to use asm-generic/device.h
The 'struct dev_archdata' is exclusively used within 'struct device',
so it could be merged into 'struct device.'
After the merger, it is necessary to update the 'dev_archdata()'
macros and the comments above 'struct arm_smmu_xen_device' in
drivers/passthrough/arm/smmu.c.
Additionally, it is required to update instances of
"dev->archdata->iommu" to "dev->iommu".
Suggested-by: Julien Grall <julien@xxxxxxx>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
---
This patch can be merged with patches 4 and 5 of this patch series.
---
Changes in V9:
- newly introduced patch.
---
xen/drivers/passthrough/arm/smmu.c | 12 ++++++------
xen/include/asm-generic/device.h | 8 +-------
2 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/xen/drivers/passthrough/arm/smmu.c
b/xen/drivers/passthrough/arm/smmu.c
index 32e2ff279b..4a272c8779 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -227,9 +227,9 @@ struct arm_smmu_xen_domain {
};
/*
- * Xen: Information about each device stored in dev->archdata.iommu
+ * Xen: Information about each device stored in dev->iommu
*
- * Initially dev->archdata.iommu only stores the iommu_domain (runtime
+ * Initially dev->iommu only stores the iommu_domain (runtime
* configuration of the SMMU) but, on Xen, we also have to store the
* iommu_group (list of streamIDs associated to the device).
*
@@ -242,7 +242,7 @@ struct arm_smmu_xen_device {
struct iommu_group *group;
};
-#define dev_archdata(dev) ((struct arm_smmu_xen_device *)dev->archdata.iommu)
+#define dev_archdata(dev) ((struct arm_smmu_xen_device *)dev->iommu)
#define dev_iommu_domain(dev) (dev_archdata(dev)->domain)
#define dev_iommu_group(dev) (dev_archdata(dev)->group)
@@ -2777,9 +2777,9 @@ static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
xen_domain = dom_iommu(d)->arch.priv;
- if (!dev->archdata.iommu) {
- dev->archdata.iommu = xzalloc(struct arm_smmu_xen_device);
- if (!dev->archdata.iommu)
+ if (!dev->iommu) {
+ dev->iommu = xzalloc(struct arm_smmu_xen_device);
+ if (!dev->iommu)
return -ENOMEM;
}
diff --git a/xen/include/asm-generic/device.h b/xen/include/asm-generic/device.h
index f91bb7f771..1acd1ba1d8 100644
--- a/xen/include/asm-generic/device.h
+++ b/xen/include/asm-generic/device.h
@@ -22,12 +22,6 @@ enum device_class
DEVICE_UNKNOWN,
};
-struct dev_archdata {
-#ifdef CONFIG_HAS_PASSTHROUGH
- void *iommu; /* IOMMU private data */
-#endif
-};
-
/* struct device - The basic device structure */
struct device
{
@@ -35,8 +29,8 @@ struct device
#ifdef CONFIG_HAS_DEVICE_TREE
struct dt_device_node *of_node; /* Used by drivers imported from Linux */
#endif
- struct dev_archdata archdata;
#ifdef CONFIG_HAS_PASSTHROUGH
+ void *iommu; /* IOMMU private data */;
struct iommu_fwspec *iommu_fwspec; /* per-device IOMMU instance data */
#endif
};
--
2.43.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |