diff options
Diffstat (limited to 'include/linux-i386/sysdep.h')
-rw-r--r-- | include/linux-i386/sysdep.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux-i386/sysdep.h b/include/linux-i386/sysdep.h index ef99d1d..55ce91e 100644 --- a/include/linux-i386/sysdep.h +++ b/include/linux-i386/sysdep.h @@ -106,10 +106,13 @@ static __inline__ uint32_t ips_cmpxchg(volatile uint32_t *ptr, uint32_t prev; struct xchg_dummy { uint32_t a[100]; }; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" asm volatile(LOCK_PREFIX "cmpxchgl %1,%2" : "=a"(prev) : "q"(new), "m"(*(struct xchg_dummy *)ptr), "0"(old) : "memory"); +#pragma GCC diagnostic pop return prev; } |