summaryrefslogtreecommitdiff
path: root/include/linux-i386/sysdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux-i386/sysdep.h')
-rw-r--r--include/linux-i386/sysdep.h3
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;
}