From: Paul Durrant <pdurrant@amazon.com>
... with macro evaluations, now that it is available.
A recent patch imported the sizeof_field() macro from Linux. This patch makes
use of it in places where the construct is currently open-coded.
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
Cc: Jun Nakajima <jun.nakajima@intel.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>
---
xen/arch/x86/cpu/vpmu_intel.c | 4 ++--
xen/arch/x86/setup.c | 16 ++++++++--------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 75aa11c6adec..6e97ce790037 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -90,8 +90,8 @@ static uint64_t __read_mostly global_ovf_ctrl_mask, global_ctrl_mask;
static unsigned int __read_mostly regs_sz;
/* Offset into context of the beginning of PMU register block */
static const unsigned int regs_off =
- sizeof(((struct xen_pmu_intel_ctxt *)0)->fixed_counters) +
- sizeof(((struct xen_pmu_intel_ctxt *)0)->arch_counters);
+ sizeof_field(struct xen_pmu_intel_ctxt, fixed_counters) +
+ sizeof_field(struct xen_pmu_intel_ctxt, arch_counters);
/*
* QUIRK to workaround an issue on various family 6 cpus.
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 44c04e273537..30d6f375a3af 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1617,19 +1617,19 @@ void __init noreturn __start_xen(unsigned long mbi_p)
total_pages = nr_pages;
/* Sanity check for unwanted bloat of certain hypercall structures. */
- BUILD_BUG_ON(sizeof(((struct xen_platform_op *)0)->u) !=
- sizeof(((struct xen_platform_op *)0)->u.pad));
- BUILD_BUG_ON(sizeof(((struct xen_domctl *)0)->u) !=
- sizeof(((struct xen_domctl *)0)->u.pad));
- BUILD_BUG_ON(sizeof(((struct xen_sysctl *)0)->u) !=
- sizeof(((struct xen_sysctl *)0)->u.pad));
+ BUILD_BUG_ON(sizeof_field(struct xen_platform_op, u) !=
+ sizeof_field(struct xen_platform_op, u.pad));
+ BUILD_BUG_ON(sizeof_field(struct xen_domctl, u) !=
+ sizeof_field(struct xen_domctl, u.pad));
+ BUILD_BUG_ON(sizeof_field(struct xen_sysctl, u) !=
+ sizeof_field(struct xen_sysctl, u.pad));
BUILD_BUG_ON(sizeof(start_info_t) > PAGE_SIZE);
BUILD_BUG_ON(sizeof(shared_info_t) > PAGE_SIZE);
BUILD_BUG_ON(sizeof(struct vcpu_info) != 64);
- BUILD_BUG_ON(sizeof(((struct compat_platform_op *)0)->u) !=
- sizeof(((struct compat_platform_op *)0)->u.pad));
+ BUILD_BUG_ON(sizeof_field(struct compat_platform_op, u) !=
+ sizeof_field(struct compat_platform_op, u.pad));
BUILD_BUG_ON(sizeof(start_info_compat_t) > PAGE_SIZE);
BUILD_BUG_ON(sizeof(struct compat_vcpu_info) != 64);
--
2.20.1
... with macro evaluations, now that it is available.
A recent patch imported the sizeof_field() macro from Linux. This patch makes
use of it in places where the construct is currently open-coded.
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
Cc: Jun Nakajima <jun.nakajima@intel.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: Wei Liu <wl@xen.org>
---
xen/arch/x86/cpu/vpmu_intel.c | 4 ++--
xen/arch/x86/setup.c | 16 ++++++++--------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 75aa11c6adec..6e97ce790037 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -90,8 +90,8 @@ static uint64_t __read_mostly global_ovf_ctrl_mask, global_ctrl_mask;
static unsigned int __read_mostly regs_sz;
/* Offset into context of the beginning of PMU register block */
static const unsigned int regs_off =
- sizeof(((struct xen_pmu_intel_ctxt *)0)->fixed_counters) +
- sizeof(((struct xen_pmu_intel_ctxt *)0)->arch_counters);
+ sizeof_field(struct xen_pmu_intel_ctxt, fixed_counters) +
+ sizeof_field(struct xen_pmu_intel_ctxt, arch_counters);
/*
* QUIRK to workaround an issue on various family 6 cpus.
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 44c04e273537..30d6f375a3af 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1617,19 +1617,19 @@ void __init noreturn __start_xen(unsigned long mbi_p)
total_pages = nr_pages;
/* Sanity check for unwanted bloat of certain hypercall structures. */
- BUILD_BUG_ON(sizeof(((struct xen_platform_op *)0)->u) !=
- sizeof(((struct xen_platform_op *)0)->u.pad));
- BUILD_BUG_ON(sizeof(((struct xen_domctl *)0)->u) !=
- sizeof(((struct xen_domctl *)0)->u.pad));
- BUILD_BUG_ON(sizeof(((struct xen_sysctl *)0)->u) !=
- sizeof(((struct xen_sysctl *)0)->u.pad));
+ BUILD_BUG_ON(sizeof_field(struct xen_platform_op, u) !=
+ sizeof_field(struct xen_platform_op, u.pad));
+ BUILD_BUG_ON(sizeof_field(struct xen_domctl, u) !=
+ sizeof_field(struct xen_domctl, u.pad));
+ BUILD_BUG_ON(sizeof_field(struct xen_sysctl, u) !=
+ sizeof_field(struct xen_sysctl, u.pad));
BUILD_BUG_ON(sizeof(start_info_t) > PAGE_SIZE);
BUILD_BUG_ON(sizeof(shared_info_t) > PAGE_SIZE);
BUILD_BUG_ON(sizeof(struct vcpu_info) != 64);
- BUILD_BUG_ON(sizeof(((struct compat_platform_op *)0)->u) !=
- sizeof(((struct compat_platform_op *)0)->u.pad));
+ BUILD_BUG_ON(sizeof_field(struct compat_platform_op, u) !=
+ sizeof_field(struct compat_platform_op, u.pad));
BUILD_BUG_ON(sizeof(start_info_compat_t) > PAGE_SIZE);
BUILD_BUG_ON(sizeof(struct compat_vcpu_info) != 64);
--
2.20.1