|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 1/5] xen/ppc: Implement atomic.h
On 01.09.2023 20:25, Shawn Anastasio wrote:
> +static inline atomic_t atomic_compareandswap(atomic_t old, atomic_t new,
> + atomic_t *v)
> +{
> + atomic_t rc;
> + rc.counter = __cmpxchg(&v->counter, old.counter, new.counter,
> sizeof(int));
I can't seem to be able to spot where __cmpxchg() is defined. (I really
only wanted to check why it needs the 4th argument, which here rather
would want to be e.g. sizeof(v->counter). If it can't be omitted.)
> + return rc;
> +}
> +
> +#define arch_cmpxchg(ptr, o, n)
> \
> + ({
> \
> + __typeof__(*(ptr)) o_ = (o);
> \
> + __typeof__(*(ptr)) n_ = (n);
> \
> + (__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long) o_,
> \
> + (unsigned long) n_, sizeof(*(ptr)));
> \
Nit: Stray blanks again after cast specifiers.
> --- /dev/null
> +++ b/xen/arch/ppc/include/asm/memory.h
> @@ -0,0 +1,21 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * Copyright (C) IBM Corp. 2005
> + *
> + * Authors: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
> + */
> +
> +#ifndef _ASM_MEMORY_H_
> +#define _ASM_MEMORY_H_
> +
> +#include <xen/config.h>
As mentioned before - no need for this explicit #include.
> +#ifdef CONFIG_SMP
> +#define PPC_ATOMIC_ENTRY_BARRIER "sync\n"
> +#define PPC_ATOMIC_EXIT_BARRIER "sync\n"
> +#else
> +#define PPC_ATOMIC_ENTRY_BARRIER
> +#define PPC_ATOMIC_EXIT_BARRIER
> +#endif
Is this correct, considering that we have no CONFIG_SMP and assume SMP
in all cases?
I'm sorry for not paying attention earlier.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |