Message ID | ba509584faf3e8c95bc39e0a68a52380330412f3.1711118582.git.nicola.vetrini@bugseng.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | address some violations of MISRA C Rule 20.7 | expand |
On 22.03.2024 17:01, Nicola Vetrini wrote: > MISRA C Rule 20.7 states: "Expressions resulting from the expansion > of macro parameters shall be enclosed in parentheses". Therefore, some > macro definitions should gain additional parentheses to ensure that all > current and future users will be safe with respect to expansions that > can possibly alter the semantics of the passed-in macro parameter. > > No functional change. > > Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> Acked-by: Jan Beulich <jbeulich@suse.com> albeit preferably with ... > --- a/xen/arch/x86/include/asm/hvm/save.h > +++ b/xen/arch/x86/include/asm/hvm/save.h > @@ -128,9 +128,9 @@ static int __init cf_check __hvm_register_##_x##_save_and_restore(void) \ > { \ > hvm_register_savevm(HVM_SAVE_CODE(_x), \ > #_x, \ > - &_save, \ > + &(_save), \ > check, \ > - &_load, \ > + &(_load), \ ... the &s dropped rather than parentheses added, as we already have it for (the recently added) "check". Jan
On 2024-03-26 11:13, Jan Beulich wrote: > On 22.03.2024 17:01, Nicola Vetrini wrote: >> MISRA C Rule 20.7 states: "Expressions resulting from the expansion >> of macro parameters shall be enclosed in parentheses". Therefore, some >> macro definitions should gain additional parentheses to ensure that >> all >> current and future users will be safe with respect to expansions that >> can possibly alter the semantics of the passed-in macro parameter. >> >> No functional change. >> >> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> > > Acked-by: Jan Beulich <jbeulich@suse.com> > albeit preferably with ... > >> --- a/xen/arch/x86/include/asm/hvm/save.h >> +++ b/xen/arch/x86/include/asm/hvm/save.h >> @@ -128,9 +128,9 @@ static int __init cf_check >> __hvm_register_##_x##_save_and_restore(void) \ >> { >> \ >> hvm_register_savevm(HVM_SAVE_CODE(_x), >> \ >> #_x, >> \ >> - &_save, >> \ >> + &(_save), >> \ >> check, >> \ >> - &_load, >> \ >> + &(_load), >> \ > > ... the &s dropped rather than parentheses added, as we already have it > for (the recently added) "check". > > Jan Sounds good
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index c75959588c0e..0ce45b177cf4 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -1066,9 +1066,9 @@ static int cf_check hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context_t *h) /* Older Xen versions used to save the segment arbytes directly * from the VMCS on Intel hosts. Detect this and rearrange them * into the struct segment_register format. */ -#define UNFOLD_ARBYTES(_r) \ - if ( (_r & 0xf000) && !(_r & 0x0f00) ) \ - _r = ((_r & 0xff) | ((_r >> 4) & 0xf00)) +#define UNFOLD_ARBYTES(_r) \ + if ( ((_r) & 0xf000) && !((_r) & 0x0f00) ) \ + (_r) = (((_r) & 0xff) | (((_r) >> 4) & 0xf00)) UNFOLD_ARBYTES(ctxt.cs_arbytes); UNFOLD_ARBYTES(ctxt.ds_arbytes); UNFOLD_ARBYTES(ctxt.es_arbytes); diff --git a/xen/arch/x86/include/asm/hvm/save.h b/xen/arch/x86/include/asm/hvm/save.h index 04a47ffcc40a..2d4b591aa3e2 100644 --- a/xen/arch/x86/include/asm/hvm/save.h +++ b/xen/arch/x86/include/asm/hvm/save.h @@ -128,9 +128,9 @@ static int __init cf_check __hvm_register_##_x##_save_and_restore(void) \ { \ hvm_register_savevm(HVM_SAVE_CODE(_x), \ #_x, \ - &_save, \ + &(_save), \ check, \ - &_load, \ + &(_load), \ (_num) * (HVM_SAVE_LENGTH(_x) \ + sizeof (struct hvm_save_descriptor)), \ _k); \
MISRA C Rule 20.7 states: "Expressions resulting from the expansion of macro parameters shall be enclosed in parentheses". Therefore, some macro definitions should gain additional parentheses to ensure that all current and future users will be safe with respect to expansions that can possibly alter the semantics of the passed-in macro parameter. No functional change. Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com> --- xen/arch/x86/hvm/hvm.c | 6 +++--- xen/arch/x86/include/asm/hvm/save.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-)