|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen staging] AMD/IOMMU: tidy struct ivrs_mappings
commit 322609f9c9809ddc106362c24683c939524510d8
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Wed Sep 25 16:03:48 2019 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Sep 25 16:03:48 2019 +0200
AMD/IOMMU: tidy struct ivrs_mappings
Move the device flags field up into an unused hole, thus shrinking
overall structure size by 8 bytes. Use bool and uint<N>_t as
appropriate. Drop pointless (redundant) initializations.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/drivers/passthrough/amd/iommu_acpi.c | 6 +++---
xen/drivers/passthrough/amd/iommu_init.c | 6 ------
xen/include/asm-x86/amd-iommu.h | 19 ++++++++++---------
3 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c
b/xen/drivers/passthrough/amd/iommu_acpi.c
index d87dc1170c..9fbc343c58 100644
--- a/xen/drivers/passthrough/amd/iommu_acpi.c
+++ b/xen/drivers/passthrough/amd/iommu_acpi.c
@@ -165,7 +165,7 @@ static void __init reserve_unity_map_for_device(
/* extend r/w permissioms and keep aggregate */
ivrs_mappings[bdf].write_permission = iw;
ivrs_mappings[bdf].read_permission = ir;
- ivrs_mappings[bdf].unity_map_enable = IOMMU_CONTROL_ENABLED;
+ ivrs_mappings[bdf].unity_map_enable = true;
ivrs_mappings[bdf].addr_range_start = base;
ivrs_mappings[bdf].addr_range_length = length;
}
@@ -242,8 +242,8 @@ static int __init register_exclusion_range_for_device(
if ( limit >= iommu_top )
{
reserve_iommu_exclusion_range(iommu, base, limit);
- ivrs_mappings[bdf].dte_allow_exclusion = IOMMU_CONTROL_ENABLED;
- ivrs_mappings[req].dte_allow_exclusion = IOMMU_CONTROL_ENABLED;
+ ivrs_mappings[bdf].dte_allow_exclusion = true;
+ ivrs_mappings[req].dte_allow_exclusion = true;
}
return 0;
diff --git a/xen/drivers/passthrough/amd/iommu_init.c
b/xen/drivers/passthrough/amd/iommu_init.c
index b2e81a6165..574f04dd81 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -1222,12 +1222,6 @@ static int __init alloc_ivrs_mappings(u16 seg)
for ( bdf = 0; bdf < ivrs_bdf_entries; bdf++ )
{
ivrs_mappings[bdf].dte_requestor_id = bdf;
- ivrs_mappings[bdf].dte_allow_exclusion = IOMMU_CONTROL_DISABLED;
- ivrs_mappings[bdf].unity_map_enable = IOMMU_CONTROL_DISABLED;
- ivrs_mappings[bdf].iommu = NULL;
-
- ivrs_mappings[bdf].intremap_table = NULL;
- ivrs_mappings[bdf].device_flags = 0;
if ( amd_iommu_perdev_intremap )
spin_lock_init(&ivrs_mappings[bdf].intremap_lock);
diff --git a/xen/include/asm-x86/amd-iommu.h b/xen/include/asm-x86/amd-iommu.h
index 0cf642f6f5..83ababdc8c 100644
--- a/xen/include/asm-x86/amd-iommu.h
+++ b/xen/include/asm-x86/amd-iommu.h
@@ -106,12 +106,16 @@ struct amd_iommu {
};
struct ivrs_mappings {
- u16 dte_requestor_id;
- u8 dte_allow_exclusion;
- u8 unity_map_enable;
- u8 write_permission;
- u8 read_permission;
- bool valid;
+ uint16_t dte_requestor_id;
+ bool valid:1;
+ bool dte_allow_exclusion:1;
+ bool unity_map_enable:1;
+ bool write_permission:1;
+ bool read_permission:1;
+
+ /* ivhd device data settings */
+ uint8_t device_flags;
+
unsigned long addr_range_start;
unsigned long addr_range_length;
struct amd_iommu *iommu;
@@ -120,9 +124,6 @@ struct ivrs_mappings {
void *intremap_table;
unsigned long *intremap_inuse;
spinlock_t intremap_lock;
-
- /* ivhd device data settings */
- u8 device_flags;
};
extern unsigned int ivrs_bdf_entries;
--
generated by git-patchbot for /home/xen/git/xen.git#staging
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |