Mailing List Archive

[PATCH v3 13/13] x86: replace open-coded occurrences of sizeof_field()...
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
Re: [PATCH v3 13/13] x86: replace open-coded occurrences of sizeof_field()... [ In reply to ]
On 24.11.2020 20:07, Paul Durrant wrote:
> 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>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
RE: [PATCH v3 13/13] x86: replace open-coded occurrences of sizeof_field()... [ In reply to ]
> From: Paul Durrant <paul@xen.org>
> Sent: Wednesday, November 25, 2020 3:08 AM
>
> 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>

Reviewed-by: Kevin Tian <kevin.tian@intel.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