From 5089a9c5f963ed5f636e01d9e9f51897f4164f56 Mon Sep 17 00:00:00 2001 From: Wojciech Malikowski Date: Tue, 11 Jun 2019 03:43:38 -0400 Subject: [PATCH] lib/vhost: Fix unaligned pointer value error Reported by clang: rte_vhost_compat.c:114:36: error: taking address of packed member 'payload' of class or structure 'vhost_user_msg' may result in an unaligned pointer value. To fix it, just remove the extra unaligned pointer and inline all its accesses. Change-Id: I7e4ab536b87ab02a4ea12c55d55a6e495c3091ca Signed-off-by: Wojciech Malikowski Signed-off-by: Darek Stojaczyk Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457559 Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto --- lib/vhost/rte_vhost_compat.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/vhost/rte_vhost_compat.c b/lib/vhost/rte_vhost_compat.c index abebf68f8..ef5113289 100644 --- a/lib/vhost/rte_vhost_compat.c +++ b/lib/vhost/rte_vhost_compat.c @@ -111,13 +111,12 @@ spdk_extern_vhost_pre_msg_handler(int vid, void *_msg) } break; case VHOST_USER_GET_CONFIG: { - struct vhost_user_config *cfg = &msg->payload.cfg; int rc = 0; spdk_vhost_lock(); if (vsession->vdev->backend->vhost_get_config) { rc = vsession->vdev->backend->vhost_get_config(vsession->vdev, - cfg->region, cfg->size); + msg->payload.cfg.region, msg->payload.cfg.size); if (rc != 0) { msg->size = 0; } @@ -127,13 +126,13 @@ spdk_extern_vhost_pre_msg_handler(int vid, void *_msg) return RTE_VHOST_MSG_RESULT_REPLY; } case VHOST_USER_SET_CONFIG: { - struct vhost_user_config *cfg = &msg->payload.cfg; int rc = 0; spdk_vhost_lock(); if (vsession->vdev->backend->vhost_set_config) { rc = vsession->vdev->backend->vhost_set_config(vsession->vdev, - cfg->region, cfg->offset, cfg->size, cfg->flags); + msg->payload.cfg.region, msg->payload.cfg.offset, + msg->payload.cfg.size, msg->payload.cfg.flags); } spdk_vhost_unlock();