On Mon, Nov 18, 2019 at 10:46:59AM +0800, Yanqin Wei wrote:
> "rxq_enabled" of netdev is writen in the vhost thread and read by pmd
> thread once it observes 'change_seq' is updated. This patch is to keep
> order on aarch64 or other weak memory model CPU to ensure 'rxq_enabled' is
> observed before 'change_seq'.
>
> Reviewed-by: Gavin Hu <[email protected]>
> Signed-off-by: Yanqin Wei <[email protected]>
Thanks for the patch.
This does not compile. Clang says:
In file included from ../lib/dpif-netdev.c:54:
../lib/netdev-provider.h:97:5: error: address argument to atomic operation
must be a pointer to _Atomic type ('uint64_t *' (aka 'unsigned long *') invalid)
../lib/ovs-atomic-clang.h:82:16: note: expanded from macro
'atomic_add_explicit'
In file included from ../lib/dpif-netdev.c:54:
../lib/netdev-provider.h:99:9: error: address argument to atomic operation
must be a pointer to _Atomic type ('uint64_t *' (aka 'unsigned long *') invalid)
../lib/ovs-atomic-clang.h:82:16: note: expanded from macro
'atomic_add_explicit'
../lib/netdev.c:2044:5: error: address argument to atomic operation must be
a pointer to _Atomic type ('const uint64_t *' (aka 'const unsigned long *')
invalid)
../lib/ovs-atomic-clang.h:53:15: note: expanded from macro
'atomic_read_explicit'
and many more instances.
GCC says:
../lib/netdev.c:2044:5: error: incorrect type in argument 1 (different
modifiers)
../lib/netdev.c:2044:5: expected void *
../lib/netdev.c:2044:5: got unsigned long const *
../lib/netdev.c:2044:5: error: incorrect type in argument 1 (different
modifiers)
../lib/netdev.c:2044:5: expected void *
../lib/netdev.c:2044:5: got unsigned long const *
I do tend to think it's correct, otherwise. I wonder how this has been
missed for so long.
Thanks,
Ben.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev