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
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 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
>>>
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(-)
© 2016 - 2026 Red Hat, Inc.