From: Pavan Nikhilesh <pbhagavatula@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@dpdk.org Signed-off-by: Pavan Nikhilesh <pbhagavatula@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
On Sat, May 02, 2020 at 09:40:31PM +0530, pbhagavatula@marvell.com wrote: > From: Pavan Nikhilesh <pbhagavatula@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@dpdk.org > > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Harman Kalra <hkalra@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 >
On 5/4/2020 10:17 AM, Harman Kalra wrote:
> On Sat, May 02, 2020 at 09:40:31PM +0530, pbhagavatula@marvell.com wrote:
>> From: Pavan Nikhilesh <pbhagavatula@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@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>
05/05/2020 12:33, Ferruh Yigit:
> On 5/4/2020 10:17 AM, Harman Kalra wrote:
> > On Sat, May 02, 2020 at 09:40:31PM +0530, pbhagavatula@marvell.com wrote:
> >> From: Pavan Nikhilesh <pbhagavatula@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@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>
Applied, thanks