summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/export-to-postgresql.py
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-05-01 16:55:51 +0300
committerThomas Gleixner <tglx@linutronix.de>2018-05-03 14:55:45 +0300
commit1aa7a5735a41418d8e01fa7c9565eb2657e2ea3f (patch)
treec0338b0662f114ed45903a5d4ccaf5a7e6868cdf /tools/perf/scripts/python/export-to-postgresql.py
parentc65732e4f72124ca5a3a0dd3bee0d3cee39c7170 (diff)
downloadlinux-1aa7a5735a41418d8e01fa7c9565eb2657e2ea3f.tar.xz
x86/nospec: Simplify alternative_msr_write()
The macro is not type safe and I did look for why that "g" constraint for the asm doesn't work: it's because the asm is more fundamentally wrong. It does movl %[val], %%eax but "val" isn't a 32-bit value, so then gcc will pass it in a register, and generate code like movl %rsi, %eax and gas will complain about a nonsensical 'mov' instruction (it's moving a 64-bit register to a 32-bit one). Passing it through memory will just hide the real bug - gcc still thinks the memory location is 64-bit, but the "movl" will only load the first 32 bits and it all happens to work because x86 is little-endian. Convert it to a type safe inline function with a little trick which hands the feature into the ALTERNATIVE macro. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions