eal/x86: fix atomic cmpset
The original code used movl instead of xchgl, this caused
rte_atomic64_cmpset to use ebx as the lower dword of the source
to cmpxchg8b instead of the lower dword of function argument "src".
Fixes: af75078fec
("first public release")
Cc: stable@dpdk.org
Reported-by: Job Abraham <job.abraham@intel.com>
Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Tested-by: Job Abraham <job.abraham@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
parent
f25f8f3676
commit
9d1c2a6a91
@ -81,7 +81,7 @@ rte_atomic64_cmpset(volatile uint64_t *dst, uint64_t exp, uint64_t src)
|
||||
: "memory" ); /* no-clobber list */
|
||||
#else
|
||||
asm volatile (
|
||||
"mov %%ebx, %%edi\n"
|
||||
"xchgl %%ebx, %%edi;\n"
|
||||
MPLOCKED
|
||||
"cmpxchg8b (%[dst]);"
|
||||
"setz %[res];"
|
||||
|
Loading…
Reference in New Issue
Block a user