From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5F119A0093; Fri, 22 May 2020 07:00:45 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BBA7B1D8F0; Fri, 22 May 2020 07:00:44 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id B81B21D8ED; Fri, 22 May 2020 07:00:42 +0200 (CEST) IronPort-SDR: x/YE9HhW2mdkeX4l133pNw6zSpFy4wC3tU7kA9DbBgJwUxLVR9O5FDJB1hu8Jjjf2yP/nhq7yl qEehjjd1wOQA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 May 2020 22:00:41 -0700 IronPort-SDR: RySObLozREjA/2jzGxwcF2AJU+1cU7zuB8z6uYzNNf3IOAXTkPgWtjQD3dJ81gxgOLCaQsjbYC rpTfrOnSNjNQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,420,1583222400"; d="scan'208";a="283288693" Received: from dpdk.sh.intel.com ([10.239.255.14]) by orsmga002.jf.intel.com with ESMTP; 21 May 2020 22:00:39 -0700 From: Guinan Sun To: dev@dpdk.org Cc: Zhao1 Wei , Guinan Sun , stable@dpdk.org Date: Fri, 22 May 2020 04:40:10 +0000 Message-Id: <20200522044010.26962-1-guinanx.sun@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [PATCH] net/ixgbe: fix MAC security private API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The driver type need to be checked in private API. The patch fixes the issue. Fixes: 50556c88104c ("net/ixgbe: fix MACsec setting") Cc: stable@dpdk.org Signed-off-by: Guinan Sun --- drivers/net/ixgbe/ixgbe_ethdev.c | 14 ++++++++++++-- drivers/net/ixgbe/ixgbe_ethdev.h | 4 ++-- drivers/net/ixgbe/rte_pmd_ixgbe.c | 10 ++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index f8a84c565..3e9c0f895 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -8988,7 +8988,7 @@ ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev) macsec->replayprotect_en = 0; } -void +int ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev, struct ixgbe_macsec_setting *macsec_setting) { @@ -8997,6 +8997,9 @@ ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev, uint8_t en = macsec_setting->encrypt_en; uint8_t rp = macsec_setting->replayprotect_en; + if (!is_ixgbe_supported(dev)) + return -ENOTSUP; + /** * Workaround: * As no ixgbe_disable_sec_rx_path equivalent is @@ -9057,14 +9060,19 @@ ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev, * just call the hand-written one directly for now. */ ixgbe_enable_sec_tx_path_generic(hw); + + return 0; } -void +int ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev) { struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private); uint32_t ctrl; + if (!is_ixgbe_supported(dev)) + return -ENOTSUP; + /** * Workaround: * As no ixgbe_disable_sec_rx_path equivalent is @@ -9106,6 +9114,8 @@ ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev) * just call the hand-written one directly for now. */ ixgbe_enable_sec_tx_path_generic(hw); + + return 0; } RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd); diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h index 3d78b2ee2..c14cadab4 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.h +++ b/drivers/net/ixgbe/ixgbe_ethdev.h @@ -755,10 +755,10 @@ int ixgbe_action_rss_same(const struct rte_flow_action_rss *comp, int ixgbe_config_rss_filter(struct rte_eth_dev *dev, struct ixgbe_rte_flow_rss_conf *conf, bool add); -void ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev, +int ixgbe_dev_macsec_register_enable(struct rte_eth_dev *dev, struct ixgbe_macsec_setting *macsec_setting); -void ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev); +int ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev); void ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev, struct ixgbe_macsec_setting *macsec_setting); diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c index 8bcaded6e..40cc7058f 100644 --- a/drivers/net/ixgbe/rte_pmd_ixgbe.c +++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c @@ -517,6 +517,7 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp) { struct rte_eth_dev *dev; struct ixgbe_macsec_setting macsec_setting; + int ret = 0; RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV); @@ -528,15 +529,16 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp) ixgbe_dev_macsec_setting_save(dev, &macsec_setting); - ixgbe_dev_macsec_register_enable(dev, &macsec_setting); + ret = ixgbe_dev_macsec_register_enable(dev, &macsec_setting); - return 0; + return ret; } int rte_pmd_ixgbe_macsec_disable(uint16_t port) { struct rte_eth_dev *dev; + int ret = 0; RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV); @@ -544,9 +546,9 @@ rte_pmd_ixgbe_macsec_disable(uint16_t port) ixgbe_dev_macsec_setting_reset(dev); - ixgbe_dev_macsec_register_disable(dev); + ret = ixgbe_dev_macsec_register_disable(dev); - return 0; + return ret; } int -- 2.17.1