[dpdk-dev] [PATCH] common/octeontx: fix GCC 9.1 ABI break

Harman Kalra hkalra at marvell.com
Mon May 4 11:17:21 CEST 2020


On Sat, May 02, 2020 at 09:40:31PM +0530, pbhagavatula at marvell.com wrote:
> 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>

Acked-by: Harman Kalra <hkalra 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