From patchwork Tue Sep 19 01:29:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Mody, Rasesh" X-Patchwork-Id: 28878 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3752D1AEF5; Tue, 19 Sep 2017 03:31:15 +0200 (CEST) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0061.outbound.protection.outlook.com [104.47.37.61]) by dpdk.org (Postfix) with ESMTP id 306CA25A1 for ; Tue, 19 Sep 2017 03:31:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=evUuv72xDoKxXS0LHQd0xXdzCw1ZdUyO+mLAGmN09SM=; b=iBwDkSk48hGsbG+D1ZQfa8XkQ4/ZsaM9mj8AfnwUaRRzz1Vwut/szf/HbikT/8JuNqWkDW09tsyYJRQVWC+ctBErgmuHUJqeFrB06ILDoq1YSllPwAIfcoSP+5nCpxDwb1C6vQ1dypdfsYx1AHOLgn/WYWITqLltyhy2rgefPas= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; Received: from cavium.com (198.186.0.2) by SN4PR0701MB3838.namprd07.prod.outlook.com (2603:10b6:803:4f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.11; Tue, 19 Sep 2017 01:31:10 +0000 From: Rasesh Mody To: dev@dpdk.org, ferruh.yigit@intel.com Cc: Rasesh Mody , Dept-EngDPDKDev@cavium.com Date: Mon, 18 Sep 2017 18:29:43 -0700 Message-Id: <1505784633-1171-4-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1505784633-1171-1-git-send-email-rasesh.mody@cavium.com> References: <1505784633-1171-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 X-Originating-IP: [198.186.0.2] X-ClientProxiedBy: SN4PR0501CA0015.namprd05.prod.outlook.com (2603:10b6:803:40::28) To SN4PR0701MB3838.namprd07.prod.outlook.com (2603:10b6:803:4f::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9d382de1-eeaf-4327-1efa-08d4fefe1b8c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:SN4PR0701MB3838; X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3838; 3:0x9QK8eDRtCxCowRGK0UZradOvTLnkgCDEGtFZGAG4F4qAf8469CajDsXQkfk2t0WRd0EVJNzo15PpKYtplQ26sF9SdXO5JhKa88QM4kQoypAUI3RHSSfyaR3I/yWIWa/RarN9YZcGM3lYFmxYN0TiIHps+kmfCNSVpCbQ/jWYyRdZDhJ6sZ9GtdmCzqxVGYQoNvgilOA7pKJ2ekZNoSBi3gwGwmjsazDUid6GpySkmlgvaIlV+VNemt1IsTjVw+; 25:I7L3y50YmaZNbAnPsIQPfNBG4VETo1whbo80BYpCuuJAP1N8D6C/rQAxPNbQfkfG0NeJK94/d/oUNdp2Zs/4V5qbK4uMyqRMGzSBFm4QpJ6YAy2StNp3ZFxQXQvBvIkQlxzL4G3hp5wvXbf04UWY/wOHyIzDS2WJU2x2+fWJ/ZpBJNS1poiggrP0EOUstTDOWkhu6RmgsA/vyULAsyQeDDSI8F195h5W2/A42OU3TyJAlZUPH9sOkbcWddNoEMxkbvY5exMWCzkMAzjCfAUHLgoda/3/tR1o3UVy1bkBQMp6wpoHY4qVITrUryuuHPK5QFNM+LFkAjLPcaZMROUsRg==; 31:ecchjPoRc7ApW0wbKWh7I4kR94TwUz/2XIRKLtHGO4x0wcNvHZfIxK/BCPvljyO4lYiLUEMqIzLPJ4LA1z7YNMQcAQiRgTleY4papGWkd7gNL3IO9A8ixAUdjHXibqUoemh5HhKxZIiI+zxbv0DSgSGy1H5lWKWDT7EGCIozHiFsZU10mgKCfoAszV+eRslxdh0Ufrg1lfZz0iG/PlXe8BKUBV9rIm0AWoT0ERHMlIE= X-MS-TrafficTypeDiagnostic: SN4PR0701MB3838: X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3838; 20:980x1Um4fmJKUuHA0GdkEUVSez9uAQOvyB4qakzqNZgCCdL5rLPnfCbhA1kbqU2bLPnF82zActLz2SqW5AuYyk2zWOhefvI6lgCCQQE83dPPijShsUaAJDmjYT09c8TS7vPiNfyqAMi8bAjFIXenxrXBl6wvtSz4PGmnxS8KzmXOjSR4uxuxGiSbR0FRwWsHJC3SIrvFzvlGY+zGFmKlBFuKtxAbWDon9vFgyk08ufgrTPP1JWN0jkv5oKsP7ZDU5bnWCBZTc+eKtl7XsoOuEdowdQ1Nl0M805L0rPhuznF5rbJAl/ea7W/HmUXJwAhfhEqvxB9PwBmwVVvbYCoXvVoD2YHMpD/HfaHBlmbk/YFGlso8VAsX+5eZRZ+XskowMk8c3Lpqh7bHp/YVzJXUkFWTmPOQnL9HAmnD93cw1SyTI+vtdJbtIoAcJux26gvc7cqnpdxiDLe6IEnNy1UcbbnvHW/OiED3JwYgLecGzth7tCrArZ7s3S4GavB57H4O; 4:fxT7t6lIGKUGrFolKt795qyxWMF2AYYlcoVgvkLR5rWQ2a4/YQ8/xF1KCaRGWU+5x2rwNlYedpNzZs1UZHKkdOwkzGEjx91qvbCuVxYsRXKDfamsTSt8PYsJmqJVn625qmcJM8mEtING3iTFSrOIEuWUNUVEUwMAw9tU5P66VA8/UQUY2+WMIocgVeTpRF+Nf70wKR4JhqFdDo3r3qbvRoA3Zjea8h9qSmFQTV/fMCay8wwjYrseOuhh8QUAAcmy X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123555025)(20161123562025)(20161123558100)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN4PR0701MB3838; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN4PR0701MB3838; X-Forefront-PRVS: 04359FAD81 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(199003)(189002)(48376002)(33646002)(68736007)(316002)(21086003)(16526017)(16586007)(72206003)(36756003)(478600001)(97736004)(86362001)(66066001)(25786009)(69596002)(47776003)(50986999)(81166006)(8936002)(50226002)(8676002)(5660300001)(7736002)(53936002)(305945005)(81156014)(55016002)(50466002)(76176999)(6116002)(3846002)(2950100002)(101416001)(4326008)(4720700003)(2906002)(107886003)(6666003)(189998001)(106356001)(5003940100001)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN4PR0701MB3838; H:cavium.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN4PR0701MB3838; 23:g19pf4HLqNlkgn7k1stE36RinYzR+F5G9VQUJ5k?= ifF8a/eALyosLx4iLvQ3HNIEX4aE+Ip73feAKcVzAC6hrIwmWuxKrpx4XKepxsDycVtJrDOSBztoQ/Mp7xZKjeScAR1W3sUnbXLDybDuvQRcaVLuigdwZCjkr42zrh3wCtlt/wAUDubRkT4M/nVTe8I/ppEjmmBf0tC+bo+s0vc9yAA2pN/G1P6JUHbmJH/V27HGD4Cebc433LUtGF459281KfvzZB8OexwRcqWXbmo8g4cvpa3dHrCAoq3flP6robkCmvngE+pR0Xcl4Wg5ZsGl+dYVS7kx3YVm9AoYkqG9d3vHWYEO4hG9kIjkInM5qWpb3eyWJjAuPcKDc6P+MVWq3xafdhi8beWS3Hxzk2xmhoqNNGLY0Gtd+06cPm29VAn/y9Kcfldj0K/SiZoBNZU5fvpYFdKI44Jgr8i1kzMHTt5a3f8H85eIjaujgXvrnTnlgCO3UkJDDMAQdzBpnGsmxlX69ysofjW0l389kYa0sja8HptwbaG/A9F66QTJz/bji5EU80eIZlohzLVF11Awke6omXSFbXEbBKfvvNwcuNw+oKVVrjbYZyHJTN7MM+iCEmA9BmvRDFDbr2mJl+txqDAemvVF7kFRqZ72dijsFNyzacjc+z50AAxpRDuMKJdXsju/3CrRgUaSmN9veyvqTCp9i4kPyXSQiONWujpeyjoYvPwst8HLbxfYZx+TIqoddip9GELRtq3eMA9OaEy5iQCFWgzZEeTzQmXWJJHk1NKG2WvwL6NDSxJCOIPb2Q8x9Z/cDcqTBsEzKeyBbSGbTB/91Bzz9Kwy8YcrfwB4ZqNxv0lOm9q702S/pGf9yigyHRJyOWFx1F5wY+MjUI35LT9QCe2IlNkmywmipMT97ii/7n9CxNFln/DK3z9YKnbMP/ZgU8v+44WP72pSd0UGEWKJdDZ6p/dc3KfxTJfpfb62AxTg7/RzrQZm01Wok+zDSpGNJlS9q0Nyd4xrPTrCSbXJpMcc7R8feCw/zzdmhc3a7DW9yf4ZtxAok8DCsTXy+f9rnUEwo/NpLCT/Ck4/zFRuiTHHoeP2LnWi8e0MNLSzZo7W+uB+iF19grDOb3VE= X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3838; 6:IvEa8fhwN8F4TyDN86fs+JK/SybUdtsGt9ONEf+rufqRMAhl9Foj43a0BiHYJn1nTJE+12NXwZxcF8tQZcvxvRhP2Pa/bkdR558rXitOtDOBgKqCGDCuf64I0zRKaezeJ4WLVigg8goO4DLBlsF7kcSNK6MaNTOIe61/QpRqj724NyGDT0pnz9vtpgaB+t4fs18XiCzF9gQBKLIgt6X2kmxIJDqZuOU2/dw7WMF4AduKlozTp/l5fk7h+AC1LJvDPRZnucsYiHgaSdjlhzWjwtiqPWJS0jmucClvO71OKXGWb7OUbqoxyvBttPYhFJErizym2or6HqoaBIxxK9v+yA==; 5:ZH1lxYqvzTwGrrUu7nSX+LvihK6ijhDsBRBejDNe2Bx/jypu5szOPmzkKim7LKTfcBDN94fR2YQC9Fmqz/3JyE5Np6XV2ILzChVk10HsauJsdVNeCEjH45+cUqTgiWba8cLQdqBe/LXpxqXXUGNHlA==; 24:EOczmMzDwH73lyGOFINuz+gi8BtbGQSe1J/+lr+T1fn8NH/bDyKVeFs1qUUKe7oGIkXjkP3WLU4foFd/KRGsI5dVE/TidhRZ9em7NEJ8FaA=; 7:8EtvOgvrq1wcvoaDHHpu1X6lN2w5gI1ebvji3iBfKX0BaJRiflcm+jTYnOAZ2zrOdXa1nsv0y1WVMMAC7rBowBNdlSMXhmBVPd+o1EJYzFB3WOS67ORQ9MkDAN/MBMfe3aR5fQqs+Gb3d68Y+qxyb+2W5c44E2tqvZmC9KuMlFGXLz12H5gKZneJEpgV/kdk6wzUvz8GeAMufnnPegaSPDz3ccZKxZh11AL+mw3w5lg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2017 01:31:10.0742 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR0701MB3838 Subject: [dpdk-dev] [PATCH 03/53] net/qede/base: use crc32 OSAL macro 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" Move ecore_crc32() macro to within base driver to qede_crc32() and use OSAL_CRC32() where required. Signed-off-by: Rasesh Mody --- drivers/net/qede/base/bcm_osal.c | 12 ++++++++++++ drivers/net/qede/base/bcm_osal.h | 4 +++- drivers/net/qede/base/ecore_sriov.c | 17 ++--------------- drivers/net/qede/base/ecore_sriov.h | 13 ------------- drivers/net/qede/base/ecore_vf.c | 4 ++-- 5 files changed, 19 insertions(+), 31 deletions(-) diff --git a/drivers/net/qede/base/bcm_osal.c b/drivers/net/qede/base/bcm_osal.c index 2603a8b..e3a2cb4 100644 --- a/drivers/net/qede/base/bcm_osal.c +++ b/drivers/net/qede/base/bcm_osal.c @@ -292,3 +292,15 @@ u32 qede_unzip_data(struct ecore_hwfn *p_hwfn, u32 input_len, DP_ERR(p_hwfn, "HW error occurred [%s]\n", err_str); ecore_int_attn_clr_enable(p_hwfn->p_dev, true); } + +u32 qede_crc32(u32 crc, u8 *ptr, u32 length) +{ + int i; + + while (length--) { + crc ^= *ptr++; + for (i = 0; i < 8; i++) + crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0); + } + return crc; +} diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_osal.h index 3acf8f7..6148982 100644 --- a/drivers/net/qede/base/bcm_osal.h +++ b/drivers/net/qede/base/bcm_osal.h @@ -427,7 +427,9 @@ void qede_get_mcp_proto_stats(struct ecore_dev *, enum ecore_mcp_protocol_type, qede_get_mcp_proto_stats(dev, type, stats) #define OSAL_SLOWPATH_IRQ_REQ(p_hwfn) (0) -#define OSAL_CRC32(crc, buf, length) 0 + +u32 qede_crc32(u32 crc, u8 *ptr, u32 length); +#define OSAL_CRC32(crc, buf, length) qede_crc32(crc, buf, length) #define OSAL_CRC8_POPULATE(table, polynomial) nothing #define OSAL_CRC8(table, pdata, nbytes, crc) 0 #define OSAL_MFW_TLV_REQ(p_hwfn) (0) diff --git a/drivers/net/qede/base/ecore_sriov.c b/drivers/net/qede/base/ecore_sriov.c index db2873e..cb3f4c3 100644 --- a/drivers/net/qede/base/ecore_sriov.c +++ b/drivers/net/qede/base/ecore_sriov.c @@ -325,19 +325,6 @@ static bool ecore_iov_validate_active_txq(struct ecore_hwfn *p_hwfn, return false; } -/* TODO - this is linux crc32; Need a way to ifdef it out for linux */ -u32 ecore_crc32(u32 crc, u8 *ptr, u32 length) -{ - int i; - - while (length--) { - crc ^= *ptr++; - for (i = 0; i < 8; i++) - crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0); - } - return crc; -} - enum _ecore_status_t ecore_iov_post_vf_bulletin(struct ecore_hwfn *p_hwfn, int vfid, struct ecore_ptt *p_ptt) @@ -359,8 +346,8 @@ enum _ecore_status_t ecore_iov_post_vf_bulletin(struct ecore_hwfn *p_hwfn, /* Increment bulletin board version and compute crc */ p_bulletin->version++; - p_bulletin->crc = ecore_crc32(0, (u8 *)p_bulletin + crc_size, - p_vf->bulletin.size - crc_size); + p_bulletin->crc = OSAL_CRC32(0, (u8 *)p_bulletin + crc_size, + p_vf->bulletin.size - crc_size); DP_VERBOSE(p_hwfn, ECORE_MSG_IOV, "Posting Bulletin 0x%08x to VF[%d] (CRC 0x%08x)\n", diff --git a/drivers/net/qede/base/ecore_sriov.h b/drivers/net/qede/base/ecore_sriov.h index 3c2f58b..5eb3484 100644 --- a/drivers/net/qede/base/ecore_sriov.h +++ b/drivers/net/qede/base/ecore_sriov.h @@ -264,19 +264,6 @@ enum _ecore_status_t ecore_sriov_eqe_event(struct ecore_hwfn *p_hwfn, union event_ring_data *data); /** - * @brief calculate CRC for bulletin board validation - * - * @param basic crc seed - * @param ptr to beginning of buffer - * @length in bytes of buffer - * - * @return calculated crc over buffer [with respect to seed]. - */ -u32 ecore_crc32(u32 crc, - u8 *ptr, - u32 length); - -/** * @brief Mark structs of vfs that have been FLR-ed. * * @param p_hwfn diff --git a/drivers/net/qede/base/ecore_vf.c b/drivers/net/qede/base/ecore_vf.c index f4d331c..7a52621 100644 --- a/drivers/net/qede/base/ecore_vf.c +++ b/drivers/net/qede/base/ecore_vf.c @@ -1497,8 +1497,8 @@ enum _ecore_status_t ecore_vf_read_bulletin(struct ecore_hwfn *p_hwfn, return ECORE_SUCCESS; /* Verify the bulletin we see is valid */ - crc = ecore_crc32(0, (u8 *)&shadow + crc_size, - p_iov->bulletin.size - crc_size); + crc = OSAL_CRC32(0, (u8 *)&shadow + crc_size, + p_iov->bulletin.size - crc_size); if (crc != shadow.crc) return ECORE_AGAIN;