qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/3] contrib/rdmacm-mux: fix clang compilation
@ 2019-01-18 12:46 Marcel Apfelbaum
  2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag Marcel Apfelbaum
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Marcel Apfelbaum @ 2019-01-18 12:46 UTC (permalink / raw)
  To: qemu-devel; +Cc: yuval.shaia, qemu-stable, marcel.apfelbaum, cohuck

v1 -> v2:
 * Use {} construct instead memset to make both gcc and clang happy (Cornelia)
 * Rebased on master
 * Added Yuval's RB and Cornelia's Tested-by tags (thanks!)

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        | 12 +++++++-----
 hw/rdma/rdma_backend.c           |  8 ++++----
 4 files changed, 13 insertions(+), 10 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH v2 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag
  2019-01-18 12:46 [Qemu-devel] [PATCH v2 0/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum
@ 2019-01-18 12:46 ` Marcel Apfelbaum
  2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 2/3] hw/rdma: modify struct initialization Marcel Apfelbaum
  2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 3/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum
  2 siblings, 0 replies; 5+ messages in thread
From: Marcel Apfelbaum @ 2019-01-18 12:46 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.

Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Tested-by: Cornelia Huck <cohuck@redhat.com>
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] 5+ messages in thread

* [Qemu-devel] [PATCH v2 2/3] hw/rdma: modify struct initialization
  2019-01-18 12:46 [Qemu-devel] [PATCH v2 0/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum
  2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag Marcel Apfelbaum
@ 2019-01-18 12:46 ` Marcel Apfelbaum
  2019-01-18 13:13   ` Cornelia Huck
  2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 3/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum
  2 siblings, 1 reply; 5+ messages in thread
From: Marcel Apfelbaum @ 2019-01-18 12:46 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 {} construct instead.

Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Tested-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
---
 contrib/rdmacm-mux/main.c | 6 +++---
 hw/rdma/rdma_backend.c    | 8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/contrib/rdmacm-mux/main.c b/contrib/rdmacm-mux/main.c
index 64676030c5..ae88c77a1e 100644
--- a/contrib/rdmacm-mux/main.c
+++ b/contrib/rdmacm-mux/main.c
@@ -350,7 +350,7 @@ 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;
 
     msg.hdr.msg_type = RDMACM_MUX_MSG_TYPE_REQ;
@@ -387,7 +387,7 @@ 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;
@@ -744,7 +744,7 @@ static void signal_handler(int sig, siginfo_t *siginfo, void *context)
 static int init(void)
 {
     int rc;
-    struct sigaction sig = {0};
+    struct sigaction sig = {};
 
     rc = init_listener();
     if (rc) {
diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c
index c28bfbd44d..0b9767fde7 100644
--- a/hw/rdma/rdma_backend.c
+++ b/hw/rdma/rdma_backend.c
@@ -190,7 +190,7 @@ 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;
 
     pr_dbg("Reading response\n");
@@ -387,7 +387,7 @@ 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;
 
@@ -1112,7 +1112,7 @@ 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;
 
     pr_dbg("0x%llx, 0x%llx\n",
@@ -1138,7 +1138,7 @@ 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;
 
     pr_dbg("0x%llx, 0x%llx\n",
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH v2 3/3] contrib/rdmacm-mux: fix clang compilation
  2019-01-18 12:46 [Qemu-devel] [PATCH v2 0/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum
  2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag Marcel Apfelbaum
  2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 2/3] hw/rdma: modify struct initialization Marcel Apfelbaum
@ 2019-01-18 12:46 ` Marcel Apfelbaum
  2 siblings, 0 replies; 5+ messages in thread
From: Marcel Apfelbaum @ 2019-01-18 12:46 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>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Tested-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 dccba1dca2..c9bdb67274 100644
--- a/Makefile
+++ b/Makefile
@@ -581,6 +581,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] 5+ messages in thread

* Re: [Qemu-devel] [PATCH v2 2/3] hw/rdma: modify struct initialization
  2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 2/3] hw/rdma: modify struct initialization Marcel Apfelbaum
@ 2019-01-18 13:13   ` Cornelia Huck
  0 siblings, 0 replies; 5+ messages in thread
From: Cornelia Huck @ 2019-01-18 13:13 UTC (permalink / raw)
  To: Marcel Apfelbaum; +Cc: qemu-devel, yuval.shaia, qemu-stable

On Fri, 18 Jan 2019 14:46:13 +0200
Marcel Apfelbaum <marcel.apfelbaum@gmail.com> wrote:

> Do not initialize structs with {0} since some
> CLANG versions do not support it.
> 
> Use {} construct instead.
> 
> Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
> Tested-by: Cornelia Huck <cohuck@redhat.com>
> Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
> ---
>  contrib/rdmacm-mux/main.c | 6 +++---
>  hw/rdma/rdma_backend.c    | 8 ++++----
>  2 files changed, 7 insertions(+), 7 deletions(-)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-01-18 13:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-18 12:46 [Qemu-devel] [PATCH v2 0/3] contrib/rdmacm-mux: fix clang compilation Marcel Apfelbaum
2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 1/3] contrib/rdmacm-mux: remove Wno-format-truncation flag Marcel Apfelbaum
2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 2/3] hw/rdma: modify struct initialization Marcel Apfelbaum
2019-01-18 13:13   ` Cornelia Huck
2019-01-18 12:46 ` [Qemu-devel] [PATCH v2 3/3] contrib/rdmacm-mux: fix clang compilation 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).