Re: [PATCH] net/virtio-user: fix implicit int to enum conversion
From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2016-06-23 20:51:22
On Thu, 23 Jun 2016 07:40:20 +0000 Jianfeng Tan [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Implicit int to enum conversion is not allowed when icc is used as the compiler. It raises the compiling error like, /.../dpdk/drivers/net/virtio/virtio_user/vhost_user.c(257): error #188: enumerated type mixed with another type msg.request = req; ^ The fix is simple, aka make such conversion explicit. Fixes: 6a84c37e3975 ("net/virtio-user: add vhost-user adapter layer") Signed-off-by: Jianfeng Tan <redacted> --- drivers/net/virtio/virtio_user/vhost_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/drivers/net/virtio/virtio_user/vhost_user.c b/drivers/net/virtio/virtio_user/vhost_user.c index 95e80f8..e2772d5 100644 --- a/drivers/net/virtio/virtio_user/vhost_user.c +++ b/drivers/net/virtio/virtio_user/vhost_user.c@@ -254,7 +254,7 @@ vhost_user_sock(int vhostfd, uint64_t req, void *arg) PMD_DRV_LOG(INFO, "%s", vhost_msg_strings[req]); - msg.request = req; + msg.request = (enum vhost_user_request)req; msg.flags = VHOST_USER_VERSION; msg.size = 0;
Why not just just change API, to use enum? This would move type checking out to the user.