[dpdk-dev] [PATCH] common/octeontx: fix GCC 9.1 ABI break
pbhagavatula at marvell.com
pbhagavatula at marvell.com
Sat May 2 18:10:31 CEST 2020
From: Pavan Nikhilesh <pbhagavatula at marvell.com>
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 at dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
---
More info on GCC bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469
https://gcc.gnu.org/git/?p=gcc.git&a=commit;h=c590597c45948c6e6fa282878198fd226da95998
drivers/common/octeontx/octeontx_mbox.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/common/octeontx/octeontx_mbox.c b/drivers/common/octeontx/octeontx_mbox.c
index 2fd253107..effe0b267 100644
--- a/drivers/common/octeontx/octeontx_mbox.c
+++ b/drivers/common/octeontx/octeontx_mbox.c
@@ -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)",
--
2.26.2
More information about the dev
mailing list