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

[xen master] x86/bitops: don't cast away volatile-ness



commit d5d126a225e78071fbb5db126744bc2a36d511df
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Wed Sep 2 08:30:49 2026 +0200
Commit:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Wed Sep 2 21:44:30 2026 +0100

    x86/bitops: don't cast away volatile-ness
    
    Doing so, besides being a bad idea in general, violates Misra rule 11.8.
    
    No functional change intended.
    
    Fixes: f1879b2c2584 ("xen: introduce generic non-atomic test_*bit()")
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Reviewed-by: Teddy Astie <teddy.astie@xxxxxxxxxx>
---
 xen/arch/x86/include/asm/bitops.h | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/bitops.h 
b/xen/arch/x86/include/asm/bitops.h
index b806002a96..557cee03ba 100644
--- a/xen/arch/x86/include/asm/bitops.h
+++ b/xen/arch/x86/include/asm/bitops.h
@@ -191,7 +191,9 @@ static inline int arch__test_and_set_bit(int nr, volatile 
void *addr)
     asm volatile ( "btsl %[nr], %[addr]\n\t"
                    ASM_FLAG_OUT(, "sbbl %[old], %[old]\n\t")
                    : [old] ASM_FLAG_OUT("=@ccc", "=r") (oldbit),
-                     [addr] "+m" (*(int *)addr) : [nr] "Ir" (nr) : "memory" );
+                     [addr] "+m" (*(volatile int *)addr)
+                   : [nr] "Ir" (nr)
+                   : "memory" );
 
     return oldbit;
 }
@@ -239,7 +241,9 @@ static inline int arch__test_and_clear_bit(int nr, volatile 
void *addr)
     asm volatile ( "btrl %[nr], %[addr]\n\t"
                    ASM_FLAG_OUT(, "sbbl %[old], %[old]\n\t")
                    : [old] ASM_FLAG_OUT("=@ccc", "=r") (oldbit),
-                     [addr] "+m" (*(int *)addr) : [nr] "Ir" (nr) : "memory" );
+                     [addr] "+m" (*(volatile int *)addr)
+                   : [nr] "Ir" (nr)
+                   : "memory" );
 
     return oldbit;
 }
@@ -253,7 +257,9 @@ static inline int arch__test_and_change_bit(int nr, 
volatile void *addr)
     asm volatile ( "btcl %[nr], %[addr]\n\t"
                    ASM_FLAG_OUT(, "sbbl %[old], %[old]\n\t")
                    : [old] ASM_FLAG_OUT("=@ccc", "=r") (oldbit),
-                     [addr] "+m" (*(int *)addr) : [nr] "Ir" (nr) : "memory" );
+                     [addr] "+m" (*(volatile int *)addr)
+                   : [nr] "Ir" (nr)
+                   : "memory" );
 
     return oldbit;
 }
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

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