Message ID | 20190112150225.20294-3-marcel.apfelbaum@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | contrib/rdmacm-mux: fix clang compilation | expand |
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 >
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 > > >
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(-)
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(-)
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 >>>
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));
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(-)