]> Pileus Git - ~andy/linux/blobdiff - arch/x86/kernel/kprobes.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
[~andy/linux] / arch / x86 / kernel / kprobes.c
index f1a6244d7d93769c35d219b79de6358d8a4096e3..7da647d8b64cf1e4302510fd98d842ccdb123ad0 100644 (file)
@@ -75,8 +75,11 @@ DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
        /*
         * Undefined/reserved opcodes, conditional jump, Opcode Extension
         * Groups, and some special opcodes can not boost.
+        * This is non-const and volatile to keep gcc from statically
+        * optimizing it out, as variable_test_bit makes gcc think only
+        * *(unsigned long*) is used. 
         */
-static const u32 twobyte_is_boostable[256 / 32] = {
+static volatile u32 twobyte_is_boostable[256 / 32] = {
        /*      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f          */
        /*      ----------------------------------------------          */
        W(0x00, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0) | /* 00 */