common/octeontx: fix gcc 9.1 ABI break
authorPavan Nikhilesh <pbhagavatula@marvell.com>
Sat, 2 May 2020 16:10:31 +0000 (21:40 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 6 May 2020 21:53:19 +0000 (23:53 +0200)
GCC 9.1 fixes a bug with passing bitfields as pass by value in function
parameters and generates a warning for the same as below:

drivers/common/octeontx/octeontx_mbox.c:282:1: note: parameter passing
for argument of type ‘struct mbox_intf_ver’ changed in GCC 9.1

Fix the warning generated by passing bitfield as pass by reference.

Fixes: b4134b2d31cc ("common/octeontx: update mbox to version 1.1.3")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Harman Kalra <hkalra@marvell.com>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
drivers/common/octeontx/octeontx_mbox.c

index 2fd2531..effe0b2 100644 (file)
@@ -279,7 +279,7 @@ octeontx_start_domain(void)
 }
 
 static int
-octeontx_check_mbox_version(struct mbox_intf_ver app_intf_ver,
+octeontx_check_mbox_version(struct mbox_intf_ver *app_intf_ver,
                            struct mbox_intf_ver *intf_ver)
 {
        struct mbox_intf_ver kernel_intf_ver = {0};
@@ -290,8 +290,9 @@ octeontx_check_mbox_version(struct mbox_intf_ver app_intf_ver,
        hdr.coproc = NO_COPROC;
        hdr.msg = RM_INTERFACE_VERSION;
 
-       result = octeontx_mbox_send(&hdr, &app_intf_ver, sizeof(app_intf_ver),
-                       &kernel_intf_ver, sizeof(kernel_intf_ver));
+       result = octeontx_mbox_send(&hdr, app_intf_ver,
+                                   sizeof(struct mbox_intf_ver),
+                                   &kernel_intf_ver, sizeof(kernel_intf_ver));
        if (result != sizeof(kernel_intf_ver)) {
                mbox_log_err("Could not send interface version. Err=%d. FuncErr=%d\n",
                             result, hdr.res_code);
@@ -301,9 +302,9 @@ octeontx_check_mbox_version(struct mbox_intf_ver app_intf_ver,
        if (intf_ver)
                *intf_ver = kernel_intf_ver;
 
-       if (app_intf_ver.platform != kernel_intf_ver.platform ||
-                       app_intf_ver.major != kernel_intf_ver.major ||
-                       app_intf_ver.minor != kernel_intf_ver.minor)
+       if (app_intf_ver->platform != kernel_intf_ver.platform ||
+                       app_intf_ver->major != kernel_intf_ver.major ||
+                       app_intf_ver->minor != kernel_intf_ver.minor)
                result = -EINVAL;
 
        return result;
@@ -312,7 +313,7 @@ octeontx_check_mbox_version(struct mbox_intf_ver app_intf_ver,
 int
 octeontx_mbox_init(void)
 {
-       const struct mbox_intf_ver MBOX_INTERFACE_VERSION = {
+       struct mbox_intf_ver MBOX_INTERFACE_VERSION = {
                .platform = 0x01,
                .major = 0x01,
                .minor = 0x03
@@ -330,7 +331,7 @@ octeontx_mbox_init(void)
                return ret;
        }
 
-       ret = octeontx_check_mbox_version(MBOX_INTERFACE_VERSION,
+       ret = octeontx_check_mbox_version(&MBOX_INTERFACE_VERSION,
                                          &rm_intf_ver);
        if (ret < 0) {
                mbox_log_err("MBOX version: Kernel(%d.%d.%d) != DPDK(%d.%d.%d)",