percpu: Avoid extra NOP in percpu_cmpxchg16b_double
percpu_cmpxchg16b_double() uses alternative_io() and looks like :
e8 .. .. .. .. call this_cpu_cmpxchg16b_emu
X bytes NOPX
or, once patched (if cpu supports native instruction) on SMP build :
65 48 0f c7 0e cmpxchg16b %gs:(%rsi)
0f 94 c0 sete %al
on !SMP build :
48 0f c7 0e cmpxchg16b (%rsi)
0f 94 c0 sete %al
Therefore, NOPX should be :
P6_NOP3 on SMP
P6_NOP2 on !SMP
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Christoph Lameter <cl@linux.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Tejun Heo <tj@kernel.org>