From: Jun Yang <jun.y...@nxp.com> 1) The max size of extract buffer should be size of "struct dpni_ext_set_rx_tc_dist"(488), which is greater than 256. 2) dpkg_prepare_key_cfg is responsible to clear extract buffer before preparing.
Fixes: 25d0ae624245 ("net/dpaa2: check IOVA before sending MC command") Cc: sta...@dpdk.org Signed-off-by: Jun Yang <jun.y...@nxp.com> --- drivers/net/dpaa2/dpaa2_ethdev.c | 4 ++-- drivers/net/dpaa2/dpaa2_ethdev.h | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index c53c2d0549..c154a574ce 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -2788,7 +2788,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev) /* Init fields w.r.t. classification */ memset(&priv->extract.qos_key_extract, 0, sizeof(struct dpaa2_key_extract)); - priv->extract.qos_extract_param = rte_malloc(NULL, + priv->extract.qos_extract_param = rte_zmalloc(NULL, DPAA2_EXTRACT_PARAM_MAX_SIZE, RTE_CACHE_LINE_SIZE); if (!priv->extract.qos_extract_param) { @@ -2799,7 +2799,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev) for (i = 0; i < MAX_TCS; i++) { memset(&priv->extract.tc_key_extract[i], 0, sizeof(struct dpaa2_key_extract)); - priv->extract.tc_extract_param[i] = rte_malloc(NULL, + priv->extract.tc_extract_param[i] = rte_zmalloc(NULL, DPAA2_EXTRACT_PARAM_MAX_SIZE, RTE_CACHE_LINE_SIZE); if (!priv->extract.tc_extract_param[i]) { diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h index fd3119247a..f32c31c763 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.h +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -31,7 +31,9 @@ #define MAX_DPNI 8 #define DPAA2_MAX_CHANNELS 16 -#define DPAA2_EXTRACT_PARAM_MAX_SIZE 256 +#define DPAA2_EXTRACT_PARAM_MAX_SIZE \ + RTE_ALIGN(sizeof(struct dpni_ext_set_rx_tc_dist), 256) + #define DPAA2_EXTRACT_ALLOC_KEY_MAX_SIZE 256 #define DPAA2_RX_DEFAULT_NBDESC 512 @@ -60,7 +62,7 @@ #define CONG_RX_OAL 128 /* Size of the input SMMU mapped memory required by MC */ -#define DIST_PARAM_IOVA_SIZE 256 +#define DIST_PARAM_IOVA_SIZE DPAA2_EXTRACT_PARAM_MAX_SIZE /* Enable TX Congestion control support * default is disable -- 2.25.1