[dpdk-stable] [dpdk-dev] [PATCH] eal: fix bug in x86 cmpset
Christian Ehrhardt
christian.ehrhardt at canonical.com
Thu Sep 29 15:05:42 CEST 2016
The patch misses a fixed: line which it should get I think.
But in general If applied -> stable for this one?
On Thu, Sep 29, 2016 at 11:24 PM, Nikhil Rao <nikhil.rao at intel.com> wrote:
> 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".
>
> Reported-by: Job Abraham <job.abraham at intel.com>
> Tested-by: Job Abraham <job.abraham at intel.com>
> Signed-off-by: Nikhil Rao <nikhil.rao at intel.com>
> ---
> lib/librte_eal/common/include/arch/x86/rte_atomic_32.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/librte_eal/common/include/arch/x86/rte_atomic_32.h
> b/lib/librte_eal/common/include/arch/x86/rte_atomic_32.h
> index 2e04c75..fb3abf1 100644
> --- a/lib/librte_eal/common/include/arch/x86/rte_atomic_32.h
> +++ b/lib/librte_eal/common/include/arch/x86/rte_atomic_32.h
> @@ -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];"
> --
> 2.7.4
>
>
--
Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd
More information about the stable
mailing list