* [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
* [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
* [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 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 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 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 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
* 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 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
* 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 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.