[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3] xen: address violations of MISRA C:2012 Rule 11.8.



On 04/12/23 17:54, Jan Beulich wrote:
On 04.12.2023 17:32, Simone Ballarin wrote:
From: Maria Celeste Cesario <maria.celeste.cesario@xxxxxxxxxxx>

Remove or amend casts to comply with Rule 11.8.

Fix violations by adding missing const qualifier in cast.
Fix violations by removing unnecessary cast.
Change type of operands from char* to uintptr_t: uintptr_t is
the appropriate type for memory address operations.

No functional changes.

Signed-off-by: Maria Celeste Cesario  <maria.celeste.cesario@xxxxxxxxxxx>
Signed-off-by: Simone Ballarin  <simone.ballarin@xxxxxxxxxxx>

I consider it good practice to at least briefly say what the rule is
about, so it is clear why certain changes need doing.

--- a/xen/arch/arm/include/asm/atomic.h
+++ b/xen/arch/arm/include/asm/atomic.h
@@ -154,7 +154,7 @@ static always_inline void write_atomic_size(volatile void 
*p,
   */
  static inline int atomic_read(const atomic_t *v)
  {
-    return *(volatile int *)&v->counter;
+    return *(const volatile int *)&v->counter;
  }

What about PPC's identical code?

If the ARM part is accepted, I will include this change in an upcoming series for Rule 11.8 (which I'm working on), otherwise in v4.


--- a/xen/arch/x86/include/asm/regs.h
+++ b/xen/arch/x86/include/asm/regs.h
@@ -6,7 +6,7 @@
#define guest_mode(r) \
  ({                                                                            
\
-    unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
+    unsigned long diff = (uintptr_t)guest_cpu_user_regs() - (uintptr_t)(r);   \
      /* Frame pointer must point into current CPU stack. */                    
\
      ASSERT(diff < STACK_SIZE);                                                
\
      /* If not a guest frame, it must be a hypervisor frame. */                
\

This part
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>

Jan

--
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.