diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2019-06-06 17:17:36 -0400 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2019-06-06 17:32:13 -0400 |
commit | 0b4a7092ffe568a55bf8f3cefdf79ff666586d91 (patch) | |
tree | 47fbd372259265d0d17999e50735b2dfc6d559c9 /drivers/vhost | |
parent | 7f466032dc9e5a61217f22ea34b2df932786bbfc (diff) | |
download | linux-stable-0b4a7092ffe568a55bf8f3cefdf79ff666586d91.tar.gz linux-stable-0b4a7092ffe568a55bf8f3cefdf79ff666586d91.tar.bz2 linux-stable-0b4a7092ffe568a55bf8f3cefdf79ff666586d91.zip |
vhost: fix clang build warning
Clang warns:
drivers/vhost/vhost.c:2085:5: warning: macro expansion producing
'defined' has undefined behavior [-Wexpansion-to-defined]
#if VHOST_ARCH_CAN_ACCEL_UACCESS
^
drivers/vhost/vhost.h:98:38: note: expanded from macro
'VHOST_ARCH_CAN_ACCEL_UACCESS'
#define VHOST_ARCH_CAN_ACCEL_UACCESS defined(CONFIG_MMU_NOTIFIER) && \
^
It's being pedantic for the sake of portability, but the fix is easy
enough.
Rework the definition of VHOST_ARCH_CAN_ACCEL_UACCESS to expand to a constant.
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Link: https://github.com/ClangBuiltLinux/linux/issues/508
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Diffstat (limited to 'drivers/vhost')
-rw-r--r-- | drivers/vhost/vhost.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index c5d950cf7627..819296332913 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -95,8 +95,11 @@ struct vhost_uaddr { bool write; }; -#define VHOST_ARCH_CAN_ACCEL_UACCESS defined(CONFIG_MMU_NOTIFIER) && \ - ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE == 0 +#if defined(CONFIG_MMU_NOTIFIER) && ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE == 0 +#define VHOST_ARCH_CAN_ACCEL_UACCESS 1 +#else +#define VHOST_ARCH_CAN_ACCEL_UACCESS 0 +#endif /* The virtqueue structure describes a queue attached to a device. */ struct vhost_virtqueue { |