diff options
author | Mandy Lavi <mandy.lavi@freescale.com> | 2015-11-24 05:12:43 (GMT) |
---|---|---|
committer | Mandy Lavi <mandy.lavi@freescale.com> | 2015-11-25 09:33:41 (GMT) |
commit | 1cf7b574207ba4fd2709b8775befb686bae5cdbc (patch) | |
tree | 63b2c8743b97161c07a4a9e37321d8fd2669934b /drivers/net/ethernet/freescale/fman/src | |
parent | b242e9c35ae998f1f732deff174c4513a5f34ad1 (diff) | |
download | linux-fsl-qoriq-1cf7b574207ba4fd2709b8775befb686bae5cdbc.tar.xz |
fmd: PCD: fix offline port blocked by fragmented IPV6
Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/src')
3 files changed, 16 insertions, 7 deletions
diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c index b25ff3d..fcc0198 100644 --- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c +++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c @@ -126,10 +126,6 @@ #error Error: please synchronize IOC_ defines! #endif -#if CMP_IOC_DEFINE(FM_PCD_PRS_SW_OFFSET) -#error Error: please synchronize IOC_ defines! -#endif - #if CMP_IOC_DEFINE(FM_PCD_MAX_MANIP_INSRT_TEMPLATE_SIZE) #error Error: please synchronize IOC_ defines! #endif diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c index 5d2d306..ee98d88 100644 --- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c +++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c @@ -1076,8 +1076,10 @@ void compat_fm_pcd_manip_set_node( memcpy(¶m->u.frag, &compat_param->u.frag, sizeof(param->u.frag)); break; case e_IOC_FM_PCD_MANIP_SPECIAL_OFFLOAD: - param->u.special_offload = compat_param->u.special_offload; - break; + memcpy(¶m->u.special_offload, + &compat_param->u.special_offload, + sizeof(param->u.special_offload)); + break; } param->p_next_manip = compat_pcd_id2ptr(compat_param->p_next_manip); diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.h b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.h index af158e9..2f0fdd4 100644 --- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.h +++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.h @@ -475,13 +475,24 @@ typedef struct ioc_compat_fm_pcd_manip_hdr_params_t { bool dont_parse_after_manip; } ioc_compat_fm_pcd_manip_hdr_params_t; +typedef struct ioc_compat_fm_pcd_manip_special_offload_params_t { + bool decryption; + bool ecn_copy; + bool dscp_copy; + bool variable_ip_hdr_len; + bool variable_ip_version; + uint8_t outer_ip_hdr_len; + uint16_t arw_size; + compat_uptr_t arw_addr; +} ioc_compat_fm_pcd_manip_special_offload_params_t; + typedef struct ioc_compat_fm_pcd_manip_params_t { ioc_fm_pcd_manip_type type; union { ioc_compat_fm_pcd_manip_hdr_params_t hdr; ioc_fm_pcd_manip_reassem_params_t reassem; ioc_fm_pcd_manip_frag_params_t frag; - ioc_fm_pcd_manip_special_offload_params_t special_offload; + ioc_compat_fm_pcd_manip_special_offload_params_t special_offload; } u; compat_uptr_t p_next_manip; #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) |