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 863FEA04DB; Thu, 15 Oct 2020 07:13:44 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 464F51BC7E; Thu, 15 Oct 2020 07:13:43 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 8FA901B694 for ; Thu, 15 Oct 2020 07:13:40 +0200 (CEST) IronPort-SDR: AfA/Q52sqDEXAs6AxEP8gnsz6TK4lOV/Of+De27rPwDXvs/HPqBUEUj+J3++1nfB49rtWrIzsA GuMVoq2Z6IZw== X-IronPort-AV: E=McAfee;i="6000,8403,9774"; a="183793055" X-IronPort-AV: E=Sophos;i="5.77,377,1596524400"; d="scan'208";a="183793055" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2020 22:13:39 -0700 IronPort-SDR: VzC/NxYCw/tKDXn5a9GwtLvIMLkKzGTkatXHNGawgO3ex/Ay1x/ng/ElFZF5cwMJ+dZEr22r0F hePcvxAmIEfw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,377,1596524400"; d="scan'208";a="521705645" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by fmsmga005.fm.intel.com with ESMTP; 14 Oct 2020 22:13:39 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 14 Oct 2020 22:13:39 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 14 Oct 2020 22:13:38 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 14 Oct 2020 22:13:38 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.46) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 14 Oct 2020 22:13:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ce73SWfqYHaJ1BsusJjAUUYWG0Qs6vbIs+WlhqnB76Q464CU4Mm9rsY2g9fmuT0pxoubfpxAbPpfF+dqyFJdCT6BojxaQnhWTpNXLts0Io4gWKi+K4r2l9jZ+a7gv2y1oH7l96/KFyUAHAAf+l6suPoTne2JdppoqjIK93lkj20dNYoYzykanMRMHniO7jx5qO5rNgu0Z1lQ9sdfMvq0CqjcJJS9URCArrULrwcCvWUl9s/jSWZgVCyMcMUCmffgxhzuOrbDDXlwhY8mFxMp/1p8WOYhGq/KM+JHVR7lan3Ag9ICOMBMpGQts0Kig5G2YTOwmj+BEin6Mcajnj7gyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lTZuTaS0w7Qs5vb0cAHSj3a3n84QjEo6VQ5BIC8Tx90=; b=Xx2fbxRHXZU2HZvlq8oeehki458c79MneN7fbcYhOld986KbdBY5dAdumw7YOTbVr8cOpab9lKJ78Q3dQJi/WXnWzi1JhIWvu5oSo8cyLtUSoaftwphbhWr83ca0nXzlZSpTTMzm9Rb3ORpoQ7jyvcAYd/xAnF8IeBkKt0xqMt4sMMcSTHxhXWkbuVv/b7KS8j+MoAIX50iuRAqKXNbdgHDTskrz3eWLhOJRB/1skN6MesCF10Nzl4Mc2gUUiyJm5FmFwvIUU1+l79LsMj+uFsBmBhfvT9MmzmGiJhhYwRakSFVm3P6YZptp67ZbWWsAVjeO3k+BKbg0uys+RybxwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lTZuTaS0w7Qs5vb0cAHSj3a3n84QjEo6VQ5BIC8Tx90=; b=i1nFul6mUTcpZlK7kVOP7pdi/tFsJgwnwDXz4L79VlkjiYrt5P8cN3BD8xpoUYxkqrmwWm+i5yWKIm3QWagvSLf+E4LRUOORwmhCfK8jzbBHGWkCvM4nC2yhbQnKzwpwCULkZ1M87P9yOoJocnVXj4iizL4dUZkG3OnwoywbGek= Received: from BN6PR11MB1841.namprd11.prod.outlook.com (2603:10b6:404:102::19) by BN7PR11MB2819.namprd11.prod.outlook.com (2603:10b6:406:b4::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.28; Thu, 15 Oct 2020 05:13:31 +0000 Received: from BN6PR11MB1841.namprd11.prod.outlook.com ([fe80::e17e:391f:331f:2ed]) by BN6PR11MB1841.namprd11.prod.outlook.com ([fe80::e17e:391f:331f:2ed%7]) with mapi id 15.20.3455.030; Thu, 15 Oct 2020 05:13:31 +0000 From: "Peng, Yuan" To: "Sun, GuinanX" , "dev@dpdk.org" CC: "Xing, Beilei" , "Wu, Jingjing" , "Zhang, Qi Z" , "Sun, GuinanX" Thread-Topic: [dpdk-dev] [PATCH] net/iavf: fix adding multicast MAC address Thread-Index: AQHWopz/h813Y3fhPU+X3fgmHhj9uamYHoFA Date: Thu, 15 Oct 2020 05:13:31 +0000 Message-ID: References: <20201015020204.12658-1-guinanx.sun@intel.com> In-Reply-To: <20201015020204.12658-1-guinanx.sun@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6d82d2c2-8a80-4247-b190-08d870c90f08 x-ms-traffictypediagnostic: BN7PR11MB2819: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:348; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MIlrYejaVClUqEwfzh2fNsll0tWZdSsq9qHijUaIOty8hFUAx5qgDzGAze2SF1nvRK3Y+BMMItpmGPdlOa6D1Y1JDSSpSrEdMNBDzeIsqp8jeH+LIlmz7JHFF3g1tcp2jED/LhxaYOrQlYAgXOjv+8ExZIQVaKBh/fahTB+PuuplxANInsGMMl2QZ+QEOOP4JcD3714AwmHS7mXRRkCiaEg/TYNxgS43mYls3x2AVM5PCy235bRnFNefaGDIJQWfxKQ90LI4y4ZWoUwKKTvd1h+xbcf8rfm5nVpgh9Y8MbTtrMD4xgzXfgT5Y5lVfxLnWvuzmfcRQQKLAn4LZ2LDIA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN6PR11MB1841.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(396003)(39860400002)(136003)(366004)(55016002)(54906003)(110136005)(9686003)(26005)(6506007)(186003)(478600001)(316002)(53546011)(7696005)(107886003)(76116006)(5660300002)(4326008)(71200400001)(66476007)(52536014)(66946007)(64756008)(8676002)(86362001)(2906002)(83380400001)(66446008)(66556008)(8936002)(33656002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: 3llWxMO4RDPe/LKPLLr/PWn/T7Jfgu33OyUDTDLn/TYUBFCX9K1L0V83S8jsuAQqwpmkjrVxxSgVGMbAKOGtEoLdnymIkPDY4K1WvPlnCyu26JBA01WndPuWtJfpeWBNYJVfXDQkYD8r5YoN/cSh05qxZ2bgfZnSSCtkMy7DExx+ed44aQeiOIkAFEl2WUAx/ptK8s2Yo7EqEpqSyAma+mY5jewNOPDFOm1w2yqzas6OioQi73sgw+eef6GiOkXSBg1ZXb1whxLyfhyf1fJZCSjz9M9dbOzRJ6PyX0JIGbmFEh+KY75VbuQhGdJGs3NT14jL3H/h5hh9Hv0VL2mz6LebmrwLP+CDz6cxa4RoB4raEqY1zAUS7BNNN4x5/NyZbo9wU8fKkvUY/7C+7sjbATsgJoHPIXEiV2CrbJIPBKtCUFWzxvlkSgxc1GWsDgBXWJy5jfLO4EQG1WwByIIuwyPApS+juPCzsviIuo2+7OEvvShpraa0z1Kjl/T8IQ0tIWJn0ixt5de/2a6bXN3IhuEH2PP/DciAwPmBGfdj1eYwhd0ZKlLvLwwp7a11366xCGE49d30vr9/2zuC/3aAjIw1XkCBVLLh37LuoljgbyN0mWEMH0AF7/tbS2AXG9RI70zTt8I7PVKUkxTO+VhOcA== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB1841.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d82d2c2-8a80-4247-b190-08d870c90f08 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2020 05:13:31.2801 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ILjvRL5pcBLtv0Z/O9D7aBJY79YKqFZ1UIX+CwV1IBHOUpdbt5qKtwWD4IMfBfeOO7S+7KtquEXTGLdJnYaZ1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2819 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] net/iavf: fix adding multicast MAC address 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" Test-by Peng, Yuan -----Original Message----- From: dev On Behalf Of Guinan Sun Sent: Thursday, October 15, 2020 10:02 AM To: dev@dpdk.org Cc: Xing, Beilei ; Wu, Jingjing ; Zhang, Qi Z ; Sun, GuinanX Subject: [dpdk-dev] [PATCH] net/iavf: fix adding multicast MAC address When the multicast address is added, it will flush previous addresses first= , and then add new ones. So when adding an address that exceeds the upper limit causes a failure, yo= u need to add the previous address list back. This patch fixes the issue. Fixes: 05e4c3aff35f ("net/iavf: support multicast configuration") Signed-off-by: Guinan Sun --- drivers/net/iavf/iavf_ethdev.c | 30 ++++++++++++++++++++++-------- driver= s/net/iavf/iavf_vchnl.c | 3 --- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.= c index e68e3bc71..042edadd9 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -164,7 +164,14 @@ iavf_set_mc_addr_list(struct rte_eth_dev *dev, struct iavf_info *vf =3D IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private); struct iavf_adapter *adapter =3D IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); - int err; + int err, temp_err; + + if (mc_addrs_num > IAVF_NUM_MACADDR_MAX) { + PMD_DRV_LOG(ERR, + "can't add more than a limited number (%u) of addresses.", + (uint32_t)IAVF_NUM_MACADDR_MAX); + return -EINVAL; + } =20 /* flush previous addresses */ err =3D iavf_add_del_mc_addr_list(adapter, vf->mc_addrs, vf->mc_addrs_num= , @@ -172,17 +179,24 @@ iavf_set_mc_addr_list(struct rte_eth_dev *dev, if (err) return err; =20 - vf->mc_addrs_num =3D 0; - /* add new ones */ err =3D iavf_add_del_mc_addr_list(adapter, mc_addrs, mc_addrs_num, true); - if (err) - return err; =20 - vf->mc_addrs_num =3D mc_addrs_num; - memcpy(vf->mc_addrs, mc_addrs, mc_addrs_num * sizeof(*mc_addrs)); + if (err) { + /* When adding new addresses fail, need to add the + * previous addresses back. + */ + temp_err =3D iavf_add_del_mc_addr_list(adapter, vf->mc_addrs, + vf->mc_addrs_num, true); + if (temp_err) + return temp_err; + } else { + vf->mc_addrs_num =3D mc_addrs_num; + memcpy(vf->mc_addrs, + mc_addrs, mc_addrs_num * sizeof(*mc_addrs)); + } =20 - return 0; + return err; } =20 static int diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c = index db0b76876..a2295f879 100644 --- a/drivers/net/iavf/iavf_vchnl.c +++ b/drivers/net/iavf/iavf_vchnl.c @@ -1107,9 +1107,6 @@ iavf_add_del_mc_addr_list(struct iavf_adapter *adapte= r, if (mc_addrs =3D=3D NULL || mc_addrs_num =3D=3D 0) return 0; =20 - if (mc_addrs_num > IAVF_NUM_MACADDR_MAX) - return -EINVAL; - list =3D (struct virtchnl_ether_addr_list *)cmd_buffer; list->vsi_id =3D vf->vsi_res->vsi_id; list->num_elements =3D mc_addrs_num; -- 2.13.6