* [Qemu-devel] [PATCH 0/3] contrib/rdmacm-mux: fix clang compilation @ 2019-01-12 15:02 Marcel Apfelbaum 2019-01-12 15:02 ` [Qemu-devel] [PATCH 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag Marcel Apfelbaum ` (3 more replies) 0 siblings, 4 replies; 13+ messages in thread From: Marcel Apfelbaum @ 2019-01-12 15:02 UTC (permalink / raw) To: qemu-devel; +Cc: yuval.shaia, qemu-stable, marcel.apfelbaum, cohuck Fix Commit a5d2f6f877 (contrib/rdmacm-mux: Add implementation of RDMA User MAD multiplexer). The above commit introduces a new contrib target, adding a global dependency to libumad library in case pvrdma configuration option is enabled. Clang forbids it: clang-6.0: error: -libumad: 'linker' input unused [-Werror,-Wunused-command-line-argument] Fix by limiting the scope to the rdmacm-mux target itself. Fix related clang errors while at it. Marcel Apfelbaum (3): contrib/rdmacm-mux: remove Wno-format-truncation flag hw/rdma: modify struct initialization contrib/rdmacm-mux: fix clang compilation Makefile | 2 ++ contrib/rdmacm-mux/Makefile.objs | 1 - contrib/rdmacm-mux/main.c | 18 +++++++++++++----- hw/rdma/rdma_backend.c | 16 ++++++++++++---- 4 files changed, 27 insertions(+), 10 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Qemu-devel] [PATCH 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag 2019-01-12 15:02 [Qemu-devel] [PATCH 0/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum @ 2019-01-12 15:02 ` Marcel Apfelbaum 2019-01-13 20:32 ` Yuval Shaia 2019-01-12 15:02 ` [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization Marcel Apfelbaum ` (2 subsequent siblings) 3 siblings, 1 reply; 13+ messages in thread From: Marcel Apfelbaum @ 2019-01-12 15:02 UTC (permalink / raw) To: qemu-devel; +Cc: yuval.shaia, qemu-stable, marcel.apfelbaum, cohuck The flag is not recognized by some CLANG versions. Add proper constraints in code instead. Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> --- contrib/rdmacm-mux/Makefile.objs | 2 +- contrib/rdmacm-mux/main.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/contrib/rdmacm-mux/Makefile.objs b/contrib/rdmacm-mux/Makefile.objs index be3eacb6f7..e1ff4fe569 100644 --- a/contrib/rdmacm-mux/Makefile.objs +++ b/contrib/rdmacm-mux/Makefile.objs @@ -1,4 +1,4 @@ ifdef CONFIG_PVRDMA -CFLAGS += -libumad -Wno-format-truncation +CFLAGS += -libumad rdmacm-mux-obj-y = main.o endif diff --git a/contrib/rdmacm-mux/main.c b/contrib/rdmacm-mux/main.c index 835a7f9214..64676030c5 100644 --- a/contrib/rdmacm-mux/main.c +++ b/contrib/rdmacm-mux/main.c @@ -42,6 +42,8 @@ /* The below can be override by command line parameter */ #define UNIX_SOCKET_PATH "/var/run/rdmacm-mux" +/* Has format %s-%s-%d" <path>-<rdma-dev--name>-<port> */ +#define SOCKET_PATH_MAX (PATH_MAX - NAME_MAX - sizeof(int) - 2) #define RDMA_PORT_NUM 1 typedef struct RdmaCmServerArgs { @@ -95,7 +97,7 @@ static void help(const char *progname) static void parse_args(int argc, char *argv[]) { int c; - char unix_socket_path[PATH_MAX]; + char unix_socket_path[SOCKET_PATH_MAX]; strcpy(server.args.rdma_dev_name, ""); strcpy(unix_socket_path, UNIX_SOCKET_PATH); @@ -113,7 +115,7 @@ static void parse_args(int argc, char *argv[]) case 's': /* This is temporary, final name will build below */ - strncpy(unix_socket_path, optarg, PATH_MAX); + strncpy(unix_socket_path, optarg, SOCKET_PATH_MAX); break; case 'p': -- 2.17.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag 2019-01-12 15:02 ` [Qemu-devel] [PATCH 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag Marcel Apfelbaum @ 2019-01-13 20:32 ` Yuval Shaia 0 siblings, 0 replies; 13+ messages in thread From: Yuval Shaia @ 2019-01-13 20:32 UTC (permalink / raw) To: Marcel Apfelbaum; +Cc: qemu-devel, qemu-stable, cohuck On Sat, Jan 12, 2019 at 05:02:23PM +0200, Marcel Apfelbaum wrote: > The flag is not recognized by some CLANG versions. > Add proper constraints in code instead. > > Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > --- > contrib/rdmacm-mux/Makefile.objs | 2 +- > contrib/rdmacm-mux/main.c | 6 ++++-- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/contrib/rdmacm-mux/Makefile.objs b/contrib/rdmacm-mux/Makefile.objs > index be3eacb6f7..e1ff4fe569 100644 > --- a/contrib/rdmacm-mux/Makefile.objs > +++ b/contrib/rdmacm-mux/Makefile.objs > @@ -1,4 +1,4 @@ > ifdef CONFIG_PVRDMA > -CFLAGS += -libumad -Wno-format-truncation > +CFLAGS += -libumad > rdmacm-mux-obj-y = main.o > endif > diff --git a/contrib/rdmacm-mux/main.c b/contrib/rdmacm-mux/main.c > index 835a7f9214..64676030c5 100644 > --- a/contrib/rdmacm-mux/main.c > +++ b/contrib/rdmacm-mux/main.c > @@ -42,6 +42,8 @@ > > /* The below can be override by command line parameter */ > #define UNIX_SOCKET_PATH "/var/run/rdmacm-mux" > +/* Has format %s-%s-%d" <path>-<rdma-dev--name>-<port> */ > +#define SOCKET_PATH_MAX (PATH_MAX - NAME_MAX - sizeof(int) - 2) > #define RDMA_PORT_NUM 1 > > typedef struct RdmaCmServerArgs { > @@ -95,7 +97,7 @@ static void help(const char *progname) > static void parse_args(int argc, char *argv[]) > { > int c; > - char unix_socket_path[PATH_MAX]; > + char unix_socket_path[SOCKET_PATH_MAX]; > > strcpy(server.args.rdma_dev_name, ""); > strcpy(unix_socket_path, UNIX_SOCKET_PATH); > @@ -113,7 +115,7 @@ static void parse_args(int argc, char *argv[]) > > case 's': > /* This is temporary, final name will build below */ > - strncpy(unix_socket_path, optarg, PATH_MAX); > + strncpy(unix_socket_path, optarg, SOCKET_PATH_MAX); > break; > Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> > case 'p': > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization 2019-01-12 15:02 [Qemu-devel] [PATCH 0/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum 2019-01-12 15:02 ` [Qemu-devel] [PATCH 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag Marcel Apfelbaum @ 2019-01-12 15:02 ` Marcel Apfelbaum 2019-01-13 19:24 ` Yuval Shaia 2019-01-14 11:47 ` Cornelia Huck 2019-01-12 15:02 ` [Qemu-devel] [PATCH 3/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum 2019-01-14 11:42 ` [Qemu-devel] [PATCH 0/3] " Cornelia Huck 3 siblings, 2 replies; 13+ messages in thread From: Marcel Apfelbaum @ 2019-01-12 15:02 UTC (permalink / raw) To: qemu-devel; +Cc: yuval.shaia, qemu-stable, marcel.apfelbaum, cohuck Do not initialize structs with {0} since some CLANG versions do not support it. Use memset instead. Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> --- contrib/rdmacm-mux/main.c | 12 +++++++++--- hw/rdma/rdma_backend.c | 16 ++++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/contrib/rdmacm-mux/main.c b/contrib/rdmacm-mux/main.c index 64676030c5..d01dc76927 100644 --- a/contrib/rdmacm-mux/main.c +++ b/contrib/rdmacm-mux/main.c @@ -350,9 +350,11 @@ static int get_fd(const char *mad, int *fd, __be64 *gid_ifid) static void *umad_recv_thread_func(void *args) { int rc; - RdmaCmMuxMsg msg = {0}; + RdmaCmMuxMsg msg; int fd = -2; + memset(&msg, 0, sizeof(msg)); + msg.hdr.msg_type = RDMACM_MUX_MSG_TYPE_REQ; msg.hdr.op_code = RDMACM_MUX_OP_CODE_MAD; @@ -387,11 +389,13 @@ static void *umad_recv_thread_func(void *args) static int read_and_process(int fd) { int rc; - RdmaCmMuxMsg msg = {0}; + RdmaCmMuxMsg msg; struct umad_hdr *hdr; uint32_t *comm_id = 0; uint16_t attr_id; + memset(&msg, 0, sizeof(msg)); + rc = recv(fd, &msg, sizeof(msg), 0); syslog(LOG_DEBUG, "Socket %d, recv %d\n", fd, rc); @@ -744,7 +748,9 @@ static void signal_handler(int sig, siginfo_t *siginfo, void *context) static int init(void) { int rc; - struct sigaction sig = {0}; + struct sigaction sig; + + memset(&sig, 0, sizeof(sig)); rc = init_listener(); if (rc) { diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c index c28bfbd44d..92e95aa640 100644 --- a/hw/rdma/rdma_backend.c +++ b/hw/rdma/rdma_backend.c @@ -190,9 +190,11 @@ static inline int rdmacm_mux_can_process_async(RdmaBackendDev *backend_dev) static int check_mux_op_status(CharBackend *mad_chr_be) { - RdmaCmMuxMsg msg = {0}; + RdmaCmMuxMsg msg; int ret; + memset(&msg, 0, sizeof(msg)); + pr_dbg("Reading response\n"); ret = qemu_chr_fe_read_all(mad_chr_be, (uint8_t *)&msg, sizeof(msg)); if (ret != sizeof(msg)) { @@ -387,10 +389,12 @@ static int build_host_sge_array(RdmaDeviceResources *rdma_dev_res, static int mad_send(RdmaBackendDev *backend_dev, uint8_t sgid_idx, union ibv_gid *sgid, struct ibv_sge *sge, uint32_t num_sge) { - RdmaCmMuxMsg msg = {0}; + RdmaCmMuxMsg msg; char *hdr, *data; int ret; + memset(&msg, 0, sizeof(msg)); + pr_dbg("num_sge=%d\n", num_sge); if (num_sge != 2) { @@ -1112,9 +1116,11 @@ int rdma_backend_get_gid_index(RdmaBackendDev *backend_dev, int rdma_backend_add_gid(RdmaBackendDev *backend_dev, const char *ifname, union ibv_gid *gid) { - RdmaCmMuxMsg msg = {0}; + RdmaCmMuxMsg msg; int ret; + memset(&msg, 0, sizeof(msg)); + pr_dbg("0x%llx, 0x%llx\n", (long long unsigned int)be64_to_cpu(gid->global.subnet_prefix), (long long unsigned int)be64_to_cpu(gid->global.interface_id)); @@ -1138,9 +1144,11 @@ int rdma_backend_add_gid(RdmaBackendDev *backend_dev, const char *ifname, int rdma_backend_del_gid(RdmaBackendDev *backend_dev, const char *ifname, union ibv_gid *gid) { - RdmaCmMuxMsg msg = {0}; + RdmaCmMuxMsg msg; int ret; + memset(&msg, 0, sizeof(msg)); + pr_dbg("0x%llx, 0x%llx\n", (long long unsigned int)be64_to_cpu(gid->global.subnet_prefix), (long long unsigned int)be64_to_cpu(gid->global.interface_id)); -- 2.17.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization 2019-01-12 15:02 ` [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization Marcel Apfelbaum @ 2019-01-13 19:24 ` Yuval Shaia 2019-01-13 19:36 ` Yuval Shaia 2019-01-14 11:47 ` Cornelia Huck 1 sibling, 1 reply; 13+ messages in thread From: Yuval Shaia @ 2019-01-13 19:24 UTC (permalink / raw) To: Marcel Apfelbaum; +Cc: qemu-devel, qemu-stable, cohuck On Sat, Jan 12, 2019 at 05:02:24PM +0200, Marcel Apfelbaum wrote: > Do not initialize structs with {0} since some > CLANG versions do not support it. > > Use memset instead. It is easier than patching CLANG ha? :) > > Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > --- > contrib/rdmacm-mux/main.c | 12 +++++++++--- > hw/rdma/rdma_backend.c | 16 ++++++++++++---- > 2 files changed, 21 insertions(+), 7 deletions(-) > > diff --git a/contrib/rdmacm-mux/main.c b/contrib/rdmacm-mux/main.c > index 64676030c5..d01dc76927 100644 > --- a/contrib/rdmacm-mux/main.c > +++ b/contrib/rdmacm-mux/main.c > @@ -350,9 +350,11 @@ static int get_fd(const char *mad, int *fd, __be64 *gid_ifid) > static void *umad_recv_thread_func(void *args) > { > int rc; > - RdmaCmMuxMsg msg = {0}; > + RdmaCmMuxMsg msg; > int fd = -2; > > + memset(&msg, 0, sizeof(msg)); > + > msg.hdr.msg_type = RDMACM_MUX_MSG_TYPE_REQ; > msg.hdr.op_code = RDMACM_MUX_OP_CODE_MAD; > > @@ -387,11 +389,13 @@ static void *umad_recv_thread_func(void *args) > static int read_and_process(int fd) > { > int rc; > - RdmaCmMuxMsg msg = {0}; > + RdmaCmMuxMsg msg; > struct umad_hdr *hdr; > uint32_t *comm_id = 0; > uint16_t attr_id; > > + memset(&msg, 0, sizeof(msg)); > + > rc = recv(fd, &msg, sizeof(msg), 0); > syslog(LOG_DEBUG, "Socket %d, recv %d\n", fd, rc); > > @@ -744,7 +748,9 @@ static void signal_handler(int sig, siginfo_t *siginfo, void *context) > static int init(void) > { > int rc; > - struct sigaction sig = {0}; > + struct sigaction sig; > + > + memset(&sig, 0, sizeof(sig)); > > rc = init_listener(); > if (rc) { > diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c > index c28bfbd44d..92e95aa640 100644 > --- a/hw/rdma/rdma_backend.c > +++ b/hw/rdma/rdma_backend.c > @@ -190,9 +190,11 @@ static inline int rdmacm_mux_can_process_async(RdmaBackendDev *backend_dev) > > static int check_mux_op_status(CharBackend *mad_chr_be) > { > - RdmaCmMuxMsg msg = {0}; > + RdmaCmMuxMsg msg; > int ret; > > + memset(&msg, 0, sizeof(msg)); > + > pr_dbg("Reading response\n"); > ret = qemu_chr_fe_read_all(mad_chr_be, (uint8_t *)&msg, sizeof(msg)); > if (ret != sizeof(msg)) { > @@ -387,10 +389,12 @@ static int build_host_sge_array(RdmaDeviceResources *rdma_dev_res, > static int mad_send(RdmaBackendDev *backend_dev, uint8_t sgid_idx, > union ibv_gid *sgid, struct ibv_sge *sge, uint32_t num_sge) > { > - RdmaCmMuxMsg msg = {0}; > + RdmaCmMuxMsg msg; > char *hdr, *data; > int ret; > > + memset(&msg, 0, sizeof(msg)); > + > pr_dbg("num_sge=%d\n", num_sge); > > if (num_sge != 2) { > @@ -1112,9 +1116,11 @@ int rdma_backend_get_gid_index(RdmaBackendDev *backend_dev, > int rdma_backend_add_gid(RdmaBackendDev *backend_dev, const char *ifname, > union ibv_gid *gid) > { > - RdmaCmMuxMsg msg = {0}; > + RdmaCmMuxMsg msg; > int ret; > > + memset(&msg, 0, sizeof(msg)); > + > pr_dbg("0x%llx, 0x%llx\n", > (long long unsigned int)be64_to_cpu(gid->global.subnet_prefix), > (long long unsigned int)be64_to_cpu(gid->global.interface_id)); > @@ -1138,9 +1144,11 @@ int rdma_backend_add_gid(RdmaBackendDev *backend_dev, const char *ifname, > int rdma_backend_del_gid(RdmaBackendDev *backend_dev, const char *ifname, > union ibv_gid *gid) > { > - RdmaCmMuxMsg msg = {0}; > + RdmaCmMuxMsg msg; > int ret; > > + memset(&msg, 0, sizeof(msg)); > + > pr_dbg("0x%llx, 0x%llx\n", > (long long unsigned int)be64_to_cpu(gid->global.subnet_prefix), > (long long unsigned int)be64_to_cpu(gid->global.interface_id)); Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> One comment though, should subject prefixed with hw/rdma or contrib/rdmacm-mux? > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization 2019-01-13 19:24 ` Yuval Shaia @ 2019-01-13 19:36 ` Yuval Shaia 2019-01-14 21:23 ` Marcel Apfelbaum 0 siblings, 1 reply; 13+ messages in thread From: Yuval Shaia @ 2019-01-13 19:36 UTC (permalink / raw) To: Marcel Apfelbaum; +Cc: cohuck, qemu-devel, qemu-stable On Sun, Jan 13, 2019 at 09:24:40PM +0200, Yuval Shaia wrote: > On Sat, Jan 12, 2019 at 05:02:24PM +0200, Marcel Apfelbaum wrote: > > Do not initialize structs with {0} since some > > CLANG versions do not support it. > > > > Use memset instead. > > It is easier than patching CLANG ha? :) > > > > > Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > > --- > > contrib/rdmacm-mux/main.c | 12 +++++++++--- > > hw/rdma/rdma_backend.c | 16 ++++++++++++---- > > 2 files changed, 21 insertions(+), 7 deletions(-) > > > > diff --git a/contrib/rdmacm-mux/main.c b/contrib/rdmacm-mux/main.c > > index 64676030c5..d01dc76927 100644 > > --- a/contrib/rdmacm-mux/main.c > > +++ b/contrib/rdmacm-mux/main.c > > @@ -350,9 +350,11 @@ static int get_fd(const char *mad, int *fd, __be64 *gid_ifid) > > static void *umad_recv_thread_func(void *args) > > { > > int rc; > > - RdmaCmMuxMsg msg = {0}; > > + RdmaCmMuxMsg msg; > > int fd = -2; > > > > + memset(&msg, 0, sizeof(msg)); > > + > > msg.hdr.msg_type = RDMACM_MUX_MSG_TYPE_REQ; > > msg.hdr.op_code = RDMACM_MUX_OP_CODE_MAD; > > > > @@ -387,11 +389,13 @@ static void *umad_recv_thread_func(void *args) > > static int read_and_process(int fd) > > { > > int rc; > > - RdmaCmMuxMsg msg = {0}; > > + RdmaCmMuxMsg msg; > > struct umad_hdr *hdr; > > uint32_t *comm_id = 0; > > uint16_t attr_id; > > > > + memset(&msg, 0, sizeof(msg)); > > + > > rc = recv(fd, &msg, sizeof(msg), 0); > > syslog(LOG_DEBUG, "Socket %d, recv %d\n", fd, rc); > > > > @@ -744,7 +748,9 @@ static void signal_handler(int sig, siginfo_t *siginfo, void *context) > > static int init(void) > > { > > int rc; > > - struct sigaction sig = {0}; > > + struct sigaction sig; > > + > > + memset(&sig, 0, sizeof(sig)); > > > > rc = init_listener(); > > if (rc) { > > diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c > > index c28bfbd44d..92e95aa640 100644 > > --- a/hw/rdma/rdma_backend.c > > +++ b/hw/rdma/rdma_backend.c > > @@ -190,9 +190,11 @@ static inline int rdmacm_mux_can_process_async(RdmaBackendDev *backend_dev) > > > > static int check_mux_op_status(CharBackend *mad_chr_be) > > { > > - RdmaCmMuxMsg msg = {0}; > > + RdmaCmMuxMsg msg; > > int ret; > > > > + memset(&msg, 0, sizeof(msg)); > > + > > pr_dbg("Reading response\n"); > > ret = qemu_chr_fe_read_all(mad_chr_be, (uint8_t *)&msg, sizeof(msg)); > > if (ret != sizeof(msg)) { > > @@ -387,10 +389,12 @@ static int build_host_sge_array(RdmaDeviceResources *rdma_dev_res, > > static int mad_send(RdmaBackendDev *backend_dev, uint8_t sgid_idx, > > union ibv_gid *sgid, struct ibv_sge *sge, uint32_t num_sge) > > { > > - RdmaCmMuxMsg msg = {0}; > > + RdmaCmMuxMsg msg; > > char *hdr, *data; > > int ret; > > > > + memset(&msg, 0, sizeof(msg)); > > + > > pr_dbg("num_sge=%d\n", num_sge); > > > > if (num_sge != 2) { > > @@ -1112,9 +1116,11 @@ int rdma_backend_get_gid_index(RdmaBackendDev *backend_dev, > > int rdma_backend_add_gid(RdmaBackendDev *backend_dev, const char *ifname, > > union ibv_gid *gid) > > { > > - RdmaCmMuxMsg msg = {0}; > > + RdmaCmMuxMsg msg; > > int ret; > > > > + memset(&msg, 0, sizeof(msg)); > > + > > pr_dbg("0x%llx, 0x%llx\n", > > (long long unsigned int)be64_to_cpu(gid->global.subnet_prefix), > > (long long unsigned int)be64_to_cpu(gid->global.interface_id)); > > @@ -1138,9 +1144,11 @@ int rdma_backend_add_gid(RdmaBackendDev *backend_dev, const char *ifname, > > int rdma_backend_del_gid(RdmaBackendDev *backend_dev, const char *ifname, > > union ibv_gid *gid) > > { > > - RdmaCmMuxMsg msg = {0}; > > + RdmaCmMuxMsg msg; > > int ret; > > > > + memset(&msg, 0, sizeof(msg)); > > + > > pr_dbg("0x%llx, 0x%llx\n", > > (long long unsigned int)be64_to_cpu(gid->global.subnet_prefix), > > (long long unsigned int)be64_to_cpu(gid->global.interface_id)); > > Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> > > One comment though, should subject prefixed with hw/rdma or > contrib/rdmacm-mux? Just noticed that patch took care of both so would it be better to have two separate patches instead? > > > -- > > 2.17.1 > > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization 2019-01-13 19:36 ` Yuval Shaia @ 2019-01-14 21:23 ` Marcel Apfelbaum 0 siblings, 0 replies; 13+ messages in thread From: Marcel Apfelbaum @ 2019-01-14 21:23 UTC (permalink / raw) To: Yuval Shaia; +Cc: cohuck, qemu-devel, qemu-stable On 1/13/19 9:36 PM, Yuval Shaia wrote: > On Sun, Jan 13, 2019 at 09:24:40PM +0200, Yuval Shaia wrote: >> On Sat, Jan 12, 2019 at 05:02:24PM +0200, Marcel Apfelbaum wrote: >>> Do not initialize structs with {0} since some >>> CLANG versions do not support it. >>> >>> Use memset instead. >> It is easier than patching CLANG ha? :) >> >>> Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> >>> --- >>> contrib/rdmacm-mux/main.c | 12 +++++++++--- >>> hw/rdma/rdma_backend.c | 16 ++++++++++++---- >>> 2 files changed, 21 insertions(+), 7 deletions(-) >>> >>> diff --git a/contrib/rdmacm-mux/main.c b/contrib/rdmacm-mux/main.c >>> index 64676030c5..d01dc76927 100644 >>> --- a/contrib/rdmacm-mux/main.c >>> +++ b/contrib/rdmacm-mux/main.c >>> @@ -350,9 +350,11 @@ static int get_fd(const char *mad, int *fd, __be64 *gid_ifid) >>> static void *umad_recv_thread_func(void *args) >>> { >>> int rc; >>> - RdmaCmMuxMsg msg = {0}; >>> + RdmaCmMuxMsg msg; >>> int fd = -2; >>> >>> + memset(&msg, 0, sizeof(msg)); >>> + >>> msg.hdr.msg_type = RDMACM_MUX_MSG_TYPE_REQ; >>> msg.hdr.op_code = RDMACM_MUX_OP_CODE_MAD; >>> >>> @@ -387,11 +389,13 @@ static void *umad_recv_thread_func(void *args) >>> static int read_and_process(int fd) >>> { >>> int rc; >>> - RdmaCmMuxMsg msg = {0}; >>> + RdmaCmMuxMsg msg; >>> struct umad_hdr *hdr; >>> uint32_t *comm_id = 0; >>> uint16_t attr_id; >>> >>> + memset(&msg, 0, sizeof(msg)); >>> + >>> rc = recv(fd, &msg, sizeof(msg), 0); >>> syslog(LOG_DEBUG, "Socket %d, recv %d\n", fd, rc); >>> >>> @@ -744,7 +748,9 @@ static void signal_handler(int sig, siginfo_t *siginfo, void *context) >>> static int init(void) >>> { >>> int rc; >>> - struct sigaction sig = {0}; >>> + struct sigaction sig; >>> + >>> + memset(&sig, 0, sizeof(sig)); >>> >>> rc = init_listener(); >>> if (rc) { >>> diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c >>> index c28bfbd44d..92e95aa640 100644 >>> --- a/hw/rdma/rdma_backend.c >>> +++ b/hw/rdma/rdma_backend.c >>> @@ -190,9 +190,11 @@ static inline int rdmacm_mux_can_process_async(RdmaBackendDev *backend_dev) >>> >>> static int check_mux_op_status(CharBackend *mad_chr_be) >>> { >>> - RdmaCmMuxMsg msg = {0}; >>> + RdmaCmMuxMsg msg; >>> int ret; >>> >>> + memset(&msg, 0, sizeof(msg)); >>> + >>> pr_dbg("Reading response\n"); >>> ret = qemu_chr_fe_read_all(mad_chr_be, (uint8_t *)&msg, sizeof(msg)); >>> if (ret != sizeof(msg)) { >>> @@ -387,10 +389,12 @@ static int build_host_sge_array(RdmaDeviceResources *rdma_dev_res, >>> static int mad_send(RdmaBackendDev *backend_dev, uint8_t sgid_idx, >>> union ibv_gid *sgid, struct ibv_sge *sge, uint32_t num_sge) >>> { >>> - RdmaCmMuxMsg msg = {0}; >>> + RdmaCmMuxMsg msg; >>> char *hdr, *data; >>> int ret; >>> >>> + memset(&msg, 0, sizeof(msg)); >>> + >>> pr_dbg("num_sge=%d\n", num_sge); >>> >>> if (num_sge != 2) { >>> @@ -1112,9 +1116,11 @@ int rdma_backend_get_gid_index(RdmaBackendDev *backend_dev, >>> int rdma_backend_add_gid(RdmaBackendDev *backend_dev, const char *ifname, >>> union ibv_gid *gid) >>> { >>> - RdmaCmMuxMsg msg = {0}; >>> + RdmaCmMuxMsg msg; >>> int ret; >>> >>> + memset(&msg, 0, sizeof(msg)); >>> + >>> pr_dbg("0x%llx, 0x%llx\n", >>> (long long unsigned int)be64_to_cpu(gid->global.subnet_prefix), >>> (long long unsigned int)be64_to_cpu(gid->global.interface_id)); >>> @@ -1138,9 +1144,11 @@ int rdma_backend_add_gid(RdmaBackendDev *backend_dev, const char *ifname, >>> int rdma_backend_del_gid(RdmaBackendDev *backend_dev, const char *ifname, >>> union ibv_gid *gid) >>> { >>> - RdmaCmMuxMsg msg = {0}; >>> + RdmaCmMuxMsg msg; >>> int ret; >>> >>> + memset(&msg, 0, sizeof(msg)); >>> + >>> pr_dbg("0x%llx, 0x%llx\n", >>> (long long unsigned int)be64_to_cpu(gid->global.subnet_prefix), >>> (long long unsigned int)be64_to_cpu(gid->global.interface_id)); >> Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> >> >> One comment though, should subject prefixed with hw/rdma or >> contrib/rdmacm-mux? > Just noticed that patch took care of both so would it be better to have two > separate patches instead? Since is an almost trivial commit I didn't bother... I hope is ok. Thanks, Marcel > >>> -- >>> 2.17.1 >>> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization 2019-01-12 15:02 ` [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization Marcel Apfelbaum 2019-01-13 19:24 ` Yuval Shaia @ 2019-01-14 11:47 ` Cornelia Huck 2019-01-14 21:22 ` Marcel Apfelbaum 1 sibling, 1 reply; 13+ messages in thread From: Cornelia Huck @ 2019-01-14 11:47 UTC (permalink / raw) To: Marcel Apfelbaum; +Cc: qemu-devel, yuval.shaia, qemu-stable On Sat, 12 Jan 2019 17:02:24 +0200 Marcel Apfelbaum <marcel.apfelbaum@gmail.com> wrote: > Do not initialize structs with {0} since some > CLANG versions do not support it. > > Use memset instead. Can't you use {} instead? (See, for example, commit ebf2a499a5c). > > Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > --- > contrib/rdmacm-mux/main.c | 12 +++++++++--- > hw/rdma/rdma_backend.c | 16 ++++++++++++---- > 2 files changed, 21 insertions(+), 7 deletions(-) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization 2019-01-14 11:47 ` Cornelia Huck @ 2019-01-14 21:22 ` Marcel Apfelbaum 0 siblings, 0 replies; 13+ messages in thread From: Marcel Apfelbaum @ 2019-01-14 21:22 UTC (permalink / raw) To: Cornelia Huck; +Cc: qemu-devel, yuval.shaia, qemu-stable Hi Cornelia, On 1/14/19 1:47 PM, Cornelia Huck wrote: > On Sat, 12 Jan 2019 17:02:24 +0200 > Marcel Apfelbaum <marcel.apfelbaum@gmail.com> wrote: > >> Do not initialize structs with {0} since some >> CLANG versions do not support it. >> >> Use memset instead. > Can't you use {} instead? (See, for example, commit ebf2a499a5c). I'll try it. Thanks, Marcel > >> Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> >> --- >> contrib/rdmacm-mux/main.c | 12 +++++++++--- >> hw/rdma/rdma_backend.c | 16 ++++++++++++---- >> 2 files changed, 21 insertions(+), 7 deletions(-) ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Qemu-devel] [PATCH 3/3] contrib/rdmacm-mux: fix clang compilation 2019-01-12 15:02 [Qemu-devel] [PATCH 0/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum 2019-01-12 15:02 ` [Qemu-devel] [PATCH 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag Marcel Apfelbaum 2019-01-12 15:02 ` [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization Marcel Apfelbaum @ 2019-01-12 15:02 ` Marcel Apfelbaum 2019-01-13 19:26 ` Yuval Shaia 2019-01-14 11:42 ` [Qemu-devel] [PATCH 0/3] " Cornelia Huck 3 siblings, 1 reply; 13+ messages in thread From: Marcel Apfelbaum @ 2019-01-12 15:02 UTC (permalink / raw) To: qemu-devel; +Cc: yuval.shaia, qemu-stable, marcel.apfelbaum, cohuck Fix Commit a5d2f6f877 (contrib/rdmacm-mux: Add implementation of RDMA User MAD multiplexer). The above commit introduces a new contrib target, adding a global dependency to libumad library in case pvrdma configuration option is enabled. Clang forbids it: clang-6.0: error: -libumad: 'linker' input unused [-Werror,-Wunused-command-line-argument] Fix by limiting the scope to the rdmacm-mux target itself. Reported-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> --- Makefile | 2 ++ contrib/rdmacm-mux/Makefile.objs | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a9ac16d94e..31e87e0c2d 100644 --- a/Makefile +++ b/Makefile @@ -580,6 +580,8 @@ vhost-user-scsi$(EXESUF): $(vhost-user-scsi-obj-y) libvhost-user.a $(call LINK, $^) vhost-user-blk$(EXESUF): $(vhost-user-blk-obj-y) libvhost-user.a $(call LINK, $^) + +rdmacm-mux$(EXESUF): LIBS += "-libumad" rdmacm-mux$(EXESUF): $(rdmacm-mux-obj-y) $(COMMON_LDADDS) $(call LINK, $^) diff --git a/contrib/rdmacm-mux/Makefile.objs b/contrib/rdmacm-mux/Makefile.objs index e1ff4fe569..3df744af89 100644 --- a/contrib/rdmacm-mux/Makefile.objs +++ b/contrib/rdmacm-mux/Makefile.objs @@ -1,4 +1,3 @@ ifdef CONFIG_PVRDMA -CFLAGS += -libumad rdmacm-mux-obj-y = main.o endif -- 2.17.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 3/3] contrib/rdmacm-mux: fix clang compilation 2019-01-12 15:02 ` [Qemu-devel] [PATCH 3/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum @ 2019-01-13 19:26 ` Yuval Shaia 0 siblings, 0 replies; 13+ messages in thread From: Yuval Shaia @ 2019-01-13 19:26 UTC (permalink / raw) To: Marcel Apfelbaum; +Cc: qemu-devel, qemu-stable, cohuck On Sat, Jan 12, 2019 at 05:02:25PM +0200, Marcel Apfelbaum wrote: > Fix Commit a5d2f6f877 (contrib/rdmacm-mux: Add implementation > of RDMA User MAD multiplexer). > > The above commit introduces a new contrib target, adding a global dependency > to libumad library in case pvrdma configuration option is enabled. > Clang forbids it: > clang-6.0: error: -libumad: 'linker' input unused > [-Werror,-Wunused-command-line-argument] > > Fix by limiting the scope to the rdmacm-mux target itself. > > Reported-by: Cornelia Huck <cohuck@redhat.com> > Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > --- > Makefile | 2 ++ > contrib/rdmacm-mux/Makefile.objs | 1 - > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index a9ac16d94e..31e87e0c2d 100644 > --- a/Makefile > +++ b/Makefile > @@ -580,6 +580,8 @@ vhost-user-scsi$(EXESUF): $(vhost-user-scsi-obj-y) libvhost-user.a > $(call LINK, $^) > vhost-user-blk$(EXESUF): $(vhost-user-blk-obj-y) libvhost-user.a > $(call LINK, $^) > + > +rdmacm-mux$(EXESUF): LIBS += "-libumad" > rdmacm-mux$(EXESUF): $(rdmacm-mux-obj-y) $(COMMON_LDADDS) > $(call LINK, $^) > > diff --git a/contrib/rdmacm-mux/Makefile.objs b/contrib/rdmacm-mux/Makefile.objs > index e1ff4fe569..3df744af89 100644 > --- a/contrib/rdmacm-mux/Makefile.objs > +++ b/contrib/rdmacm-mux/Makefile.objs > @@ -1,4 +1,3 @@ > ifdef CONFIG_PVRDMA > -CFLAGS += -libumad My bad, thanks for doing it the right way. Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> > rdmacm-mux-obj-y = main.o > endif > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 0/3] contrib/rdmacm-mux: fix clang compilation 2019-01-12 15:02 [Qemu-devel] [PATCH 0/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum ` (2 preceding siblings ...) 2019-01-12 15:02 ` [Qemu-devel] [PATCH 3/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum @ 2019-01-14 11:42 ` Cornelia Huck 2019-01-14 21:26 ` Marcel Apfelbaum 3 siblings, 1 reply; 13+ messages in thread From: Cornelia Huck @ 2019-01-14 11:42 UTC (permalink / raw) To: Marcel Apfelbaum; +Cc: qemu-devel, yuval.shaia, qemu-stable On Sat, 12 Jan 2019 17:02:22 +0200 Marcel Apfelbaum <marcel.apfelbaum@gmail.com> wrote: > Fix Commit a5d2f6f877 (contrib/rdmacm-mux: Add implementation > of RDMA User MAD multiplexer). > > The above commit introduces a new contrib target, adding a global dependency > to libumad library in case pvrdma configuration option is enabled. > Clang forbids it: > clang-6.0: error: -libumad: 'linker' input unused > [-Werror,-Wunused-command-line-argument] > > Fix by limiting the scope to the rdmacm-mux target itself. > Fix related clang errors while at it. > > Marcel Apfelbaum (3): > contrib/rdmacm-mux: remove Wno-format-truncation flag > hw/rdma: modify struct initialization > contrib/rdmacm-mux: fix clang compilation > > Makefile | 2 ++ > contrib/rdmacm-mux/Makefile.objs | 1 - > contrib/rdmacm-mux/main.c | 18 +++++++++++++----- > hw/rdma/rdma_backend.c | 16 ++++++++++++---- > 4 files changed, 27 insertions(+), 10 deletions(-) > This fixes building on x86 with clang 6 for me. On s390x with clang 7, I run into further problems when building the s390-ccw bios (the maintainers are aware of that), but the rdma-related errors are gone. Tested-by: Cornelia Huck <cohuck@redhat.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Qemu-devel] [PATCH 0/3] contrib/rdmacm-mux: fix clang compilation 2019-01-14 11:42 ` [Qemu-devel] [PATCH 0/3] " Cornelia Huck @ 2019-01-14 21:26 ` Marcel Apfelbaum 0 siblings, 0 replies; 13+ messages in thread From: Marcel Apfelbaum @ 2019-01-14 21:26 UTC (permalink / raw) To: Cornelia Huck; +Cc: qemu-devel, yuval.shaia, qemu-stable Hi Cornelia, On 1/14/19 1:42 PM, Cornelia Huck wrote: > On Sat, 12 Jan 2019 17:02:22 +0200 > Marcel Apfelbaum <marcel.apfelbaum@gmail.com> wrote: > >> Fix Commit a5d2f6f877 (contrib/rdmacm-mux: Add implementation >> of RDMA User MAD multiplexer). >> >> The above commit introduces a new contrib target, adding a global dependency >> to libumad library in case pvrdma configuration option is enabled. >> Clang forbids it: >> clang-6.0: error: -libumad: 'linker' input unused >> [-Werror,-Wunused-command-line-argument] >> >> Fix by limiting the scope to the rdmacm-mux target itself. >> Fix related clang errors while at it. >> >> Marcel Apfelbaum (3): >> contrib/rdmacm-mux: remove Wno-format-truncation flag >> hw/rdma: modify struct initialization >> contrib/rdmacm-mux: fix clang compilation >> >> Makefile | 2 ++ >> contrib/rdmacm-mux/Makefile.objs | 1 - >> contrib/rdmacm-mux/main.c | 18 +++++++++++++----- >> hw/rdma/rdma_backend.c | 16 ++++++++++++---- >> 4 files changed, 27 insertions(+), 10 deletions(-) >> > This fixes building on x86 with clang 6 for me. On s390x with clang 7, > I run into further problems when building the s390-ccw bios (the > maintainers are aware of that), but the rdma-related errors are gone. > > Tested-by: Cornelia Huck <cohuck@redhat.com> Appreciated, Marcel ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2019-01-14 21:28 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-01-12 15:02 [Qemu-devel] [PATCH 0/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum 2019-01-12 15:02 ` [Qemu-devel] [PATCH 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag Marcel Apfelbaum 2019-01-13 20:32 ` Yuval Shaia 2019-01-12 15:02 ` [Qemu-devel] [PATCH 2/3] hw/rdma: modify struct initialization Marcel Apfelbaum 2019-01-13 19:24 ` Yuval Shaia 2019-01-13 19:36 ` Yuval Shaia 2019-01-14 21:23 ` Marcel Apfelbaum 2019-01-14 11:47 ` Cornelia Huck 2019-01-14 21:22 ` Marcel Apfelbaum 2019-01-12 15:02 ` [Qemu-devel] [PATCH 3/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum 2019-01-13 19:26 ` Yuval Shaia 2019-01-14 11:42 ` [Qemu-devel] [PATCH 0/3] " Cornelia Huck 2019-01-14 21:26 ` Marcel Apfelbaum
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).