diff mbox series

[2/3] hw/rdma: modify struct initialization

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

Commit Message

Marcel Apfelbaum Jan. 12, 2019, 3:02 p.m. UTC
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(-)

Comments

Yuval Shaia Jan. 13, 2019, 7:24 p.m. UTC | #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
>
Yuval Shaia Jan. 13, 2019, 7:36 p.m. UTC | #2
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
> > 
>
Cornelia Huck Jan. 14, 2019, 11:47 a.m. UTC | #3
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(-)
Marcel Apfelbaum Jan. 14, 2019, 9:22 p.m. UTC | #4
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(-)
Marcel Apfelbaum Jan. 14, 2019, 9:23 p.m. UTC | #5
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 mbox series

Patch

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));