From patchwork Wed Jan 18 01:21:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 19677 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 5200AFA3F; Wed, 18 Jan 2017 02:23:55 +0100 (CET) Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0041.outbound.protection.outlook.com [104.47.34.41]) by dpdk.org (Postfix) with ESMTP id 22031F955 for ; Wed, 18 Jan 2017 02:23:32 +0100 (CET) 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=l3cCEPwxjJ4rRT+xPvIuxXWtyo1IoknHs3eylvpQeLY=; b=W2sCRPr7koJocvAmZTpyp5lMklVJRrxkL3DVtVBx2JbxIqlarDEhuzUvWOf5PsP2dAghjMYifRRX2vOQX+88jAMY2ZUnjnJ8UT0WX8D/UWfddcazgsJ9oIldKYVjyna4iPRXN9ROUI9G3gU0MBbuwsnYvqJ7YG+W5Id5CeiKf4k= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from jerin.caveonetworks.com (111.93.218.67) by BY1PR0701MB1721.namprd07.prod.outlook.com (10.162.111.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Wed, 18 Jan 2017 01:23:27 +0000 From: Jerin Jacob To: CC: , , , , , , John Daley , Nelson Escobar , Jerin Jacob Date: Wed, 18 Jan 2017 06:51:33 +0530 Message-ID: <1484702502-25451-21-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1484702502-25451-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1484637244-7548-1-git-send-email-jerin.jacob@caviumnetworks.com> <1484702502-25451-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MA1PR01CA0115.INDPRD01.PROD.OUTLOOK.COM (10.174.56.159) To BY1PR0701MB1721.namprd07.prod.outlook.com (10.162.111.140) X-MS-Office365-Filtering-Correlation-Id: 266fc850-2f88-4f64-c6b7-08d43f409ca4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY1PR0701MB1721; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 3:8c1ayhs2f2rUr0mCaFLt/+Dpofm7vsQDTo9LIElHu2IJK++wW7CxJuGhw1jPJ+wg4Ciylzl66LScaDHH2MiAF+xc9PeYT8yADzFrN1C7AJc7jroPf/wScOFhDW5yDLs8eILYL9fGtOuE3hEk/eS0yoa6utvceXW9b7ErWE63LLX/zqzV4JG0TVtL+owb0bfPU22kB47xKl7axbvMbGWf/3noh0onveckBuJ3SjbAZFXIBYnnbAWTdeUlMtNG5c+uq5MmGdcZi/6tb2BZm1fUJA== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 25:bPtOPbfvPnCm97DRoY+ERwg/3wl/xwkAgPNEB89bikqK0Epeh68Bo+6dCmKdL2r6nAjWlFLLSeNkuD5nzCaqRsqXkY9p1Reuq2PSretPUIkQ5gOmsiQ+GyhEbH8exLxgmvkhkWLLY8/+MyV7MGflXhUH5LuJwCAQyOS8KaRctttti0Yb/gPAAgq99mjheOPRC/6rVctHIk0e/XZ8JXHOwRpmsI0oiqPGLSdLOwggM26PfjK9auaF+S+yIiX4IVoALPPM1ft+9TKm0/aPaJy+14Fte0JHofwiIfT61I+bx8Aq+uAhqbr9nB2NQLXWXFjaobg1sU4ghHxVTX3fb4PRWgvjaddju6Y8tZHcZ82MAID7q/y7+T1n4HLhCFbUks04DXiDlhVZYXAXLPALr3iQS95WEzMSnJUcPKQxOAkmnWgh6kpgLv//yZiz0PywR/8sPCQKlSqqMER/GKwNwxyk+4CDjcBGOHHR5TFcsxOeFPtEyEVDGc8TYa2RIFV/Z7nKGS91sCHJAlH4P6Ks5EAKOQ56CbX9OL991s5WHGNKTwuhcPhONnSR+KGHXaz2AU75Xv3DVUDZj8kFgn4cp2qG3DqnO9dhS/3keoGhzXrSP5oAqSkia/V9lVax044Hv9q+konL4Qp+9eVppJfkW4VIc2EujJYMYs5cTuEbiFDAw+B1y46UQFmAqxfJ6UG86TrH+hPGr+TLI/7IvP1nJmSqEqQuuE4byNKlZKHM7wXv8Wav3V6k9qOdmoN1pugynP3ZpRd/oJ/jzeNNBYkxQo+6p2FQmZ+mXyZ4E6eCV21oQU0= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 31:yt93KdSH21GwcRz09Wly4BsMJe878obRVDRiCfAN4rwvI1rql1XqP+jtxvdR36sTD9xhXeJuP6uYypLkEduMBmYdL0r2ORfZ7rZEHsdb2XpD/oFFiClZtsX24MlYrXfDgZoInmWET0Hfff9aLZsc1BC1cNd2/6XTwXZETMabqcdMDd3xEHqo9NnomjX1/eDDwrNypLKWJ22mokYL2QRWq/5XLjaD4MrYf+saSrLfmiWTY8WIVesWNwArWxIo+WJL; 20:3RZzAm09GwAN0/BRPgUlcJUg0HjjNrjRvN4yq6f8NC0cTMD/wcuCKZ4WqX186DVZ3JIHodyEmK+emH/FMQp2Z2E0EL6kAQ0xwr/qvCCeXP31nkAxVUlCOAkp2rP1P1/w+6c6r4k2zLrCN3WPQdy1HzrshyL+AN6m3T8iuAaeNp8vB6pFpjdsH2W5Yvns1MnW8rhU571AntAz3EaE4ue4EestVGIn3L7fP+zAmWQNlA8vSbIa4AcSXmfmIoQ//G7Ie20UmhSwmS59YN4E3l8axtmcKxwn8WHA16v62nEIDhJQ6HS4jXWEriVM46hLnBho1LvBXeBDIYe2IqrEoTWcfKIc/lR2GftAqb2sEz45b6+QTVLL69V6p9qh2alsqWSf0jxLfttpsSOhCXHZ2PiyCNPT5vW2SdfalVlOYhQX8To2ftd9mb+Tbtz8Z1DJC2eR6GD+JysEWgbeeWJ7SniIR4CdVJKQDcbeBvD/Azz2mCR+TSBHv4tTKDQw5VKsKKAgMBLBWhjgHz3prfEpdBH0E+UZsDphqVEJAAXrdq5s4/n/84D4fEe2n/5mZ3ujtMG/fUeSba9Yo5r95sIsJy39xjF7GGxtpuQSvsfguKS5Jko= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(95692535739014); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(6072148); SRVR:BY1PR0701MB1721; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0701MB1721; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 4:kCSddu8E/1C48K5PLTvLrBq97AgtAGjxlKOHnQRmR1b9I9Job4SxitUrOTNa50+GSNIaAG+jyh6IjUzzRgrvpY9xXifmeTX08SxUQWvV28l27lm6kVaxZToGbk6wpfpHwlNWCG/QPAL28LfYjtwX8xfOtcw+i37JRpzahNGt5UIbu/ZFsqC69qA0PHvM6ODjBTjiXrFoi5lMDyHoU681U6y9yG2lj8zBbqyXbFCYjUTfAwDbMv4MO1EX4OmIcNCi2slvWqJ9iXAoPek8LWkEY1POm/ZxwTZRIDo/4dujAmmjj4ltnRDO/1afBaKSB8a2nTNLMTxQMt/XZtywE6SOe0gYC5j9mhyXiagZktOd61fRmJQ1ij+gEScyLbHKOSUNoCvJCJcqcq5meARClJ25coNp1wM0DBhKhZ0FTKB0YBexqfOIdVElJ/UOOPApwmGZ19vluCrpiAGHMF/I2v+A40a0mBzOMH3Bit4S2Phi5Y6w5ZWVKwXWU1R3zLbT4vbn7zJXtwjj5sgyElgC2ov2xtIKqmSTBAZ/ZlZHfdJQgy7hqCsdTv8bLBnJ8AgGFoJzw/vVk5rbSpBymsIzMeWgj1yXtw95lW8+32K2vgRfhx9OlFnOBsW/JD41WbhF2XFDfmzBPIS+PMijXIT97l8hyg== X-Forefront-PRVS: 01917B1794 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(199003)(189002)(4326007)(6506006)(50986999)(97736004)(47776003)(107886002)(25786008)(189998001)(54906002)(66066001)(92566002)(101416001)(38730400001)(81156014)(81166006)(6486002)(2906002)(42186005)(53936002)(50226002)(8676002)(2351001)(68736007)(305945005)(53416004)(3846002)(50466002)(6666003)(105586002)(33646002)(6116002)(4001430100002)(5660300001)(6512007)(48376002)(69596002)(76176999)(42882006)(5003940100001)(5009440100003)(36756003)(7736002)(110136003)(6916009)(106356001)(2950100002)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1721; H:jerin.caveonetworks.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; BY1PR0701MB1721; 23:nEWPjh/7VEQanTuSXetuyErdGo4ERl3aCHgmwzg?= VOQ77ZO5S0CbfuQI+rYbPB4ljDSuQBcuPflprtDMp8TC0bz9aDGYXE829N+WK29ak/aGfAFbXNvE1G1EhDenfcEY2mcZjF3NPntjA76qKE6DrjWNgen3HtewUifWaroBE0wb3laKqNTY8JHBy2P3d2ii17RXke+wwW+Tz6MtoX731hbdrDiuVLhWV1of92D4LbjRgl/sqX+sgRp0Zmnm7pkKzNs00CTPdT5G3XP6nVkk6QSgMaTq4HntK9tQOPQMYgwY5RDMkumA3bjyn2TvcExS5h+6UDipDBI/7K5pE+u82y6XCQ0BXCisHPMQwKNf5Cgl4d0ngrAw5f7eKMQuZqvtn+ZMyVMIe8B60NJ+chvrKINQF3uepQw+53VExh2IE/L0MgQDYkrkZ+7iCgo1Rwuz/GSqHsMeFhOzuJ9urjwi17T0MwbHoE6jlQQAWD63Buzh3vhCb12ZTzSTwA/zSwfI7gF3ZJm0qyP4SKYPGrleNKx1EEsOnIOZhS2c/xA+Jkt+bsqKnajI1psHypOehsc6lmMBN3XOeZUZ3SXYTO2KoQWqxEzbEqlsb4l8+VHJ6WJVke1M/OeHEQw5Mj6UzDphYzIW39fBIYO+66SdpNS3Rv26VHVAVaDxvu1noaA3YzYdpiTtds34320aGUyl6LdEuAhAPM/GsEakEBtlCImrYvhAJsXgA5NQlGf6SRHp9sW/xg4gV/wmWs/ClNG2N6NuGjJn50aWdQiwL1vRq5BWmmF6e9X4L6axaOijnOVTWUlWnu6HssMIRCXfE13lPRLrc7K9sIg3BR8AbfHiGOkWrh2p1oEUDoMKIqxoRHV4r8KMD4pflRTsXB9Fa2oXvxfQhSZH5NMDNeAwkKClY/G0WiQts1EwhktC+P6C3/yqEDz3wCDOWcjEr1GwL3Wf8odogypfPU1iEI0FXUSkT6TMLh0DFhrzN4PfUqfX1Olfezw7EsFVi2ZPQOtoh+riT42fsuUWpB4Wh9p+Lf7+uLGE7zL+b9IYDfXYXp2dOsCno/N5gx6/0FG7scLdRSqPN5BKcO+5i5NIAkrp505fcjDpGiukUVplVypvnb0am9QUQYPJPu+TldF+uIfR69Q+SuQBBMEm6leadLvmBTD/zbvvx0M60VwHdaXIyvyYgfRWMmMDZQIJUrHb9XOOoY7+ovvKq5QkHTRS02OO2YoZcsvMWiyCMWrcG8SkEcl6efMAfbkcRAnX7RKO3u8tQMs0vhJ/kVV2Mg4PNX8tCKemjQhBPpg== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 6:/jO/f1m2XqS9V9VTqHOYEZPf7Xbvu8tdYq5+OvnKUiEvvWz89/VqBKI4rCpNAYccaqmDhrFY4lOqKhiPy52/Yf9lQqUWDVnDmJKGx1dIudyzpXJ4+foWJHxDHmNBrtNybRIjdQlT/nsxGLdYERAEtR2CZ8FE01jK2CARM3OvF1Fw4XIhJyBLiNANZgrKFI2wt4muEu6GiQJBA+yjjxxa28ugiiedN1zvPnkfM58E1+H490aWzw3lDZMdBlrJmQ+RNkft1tpHgqMqnEvSo4Vx/NHU0LzFAFm+MZkIv777I+pvpl1OhDbqlGJOti3fEgkOhAFDZELsNLLY6TNIn4CfAyNMbfyALyvg2oJrE+JZsD9dGC2IN2sKfk/6CtOLFfK2sHmDXAaOcYUkTDYT4H3L7zzyeCxr35d2Ss62s9vv7TA=; 5:to19eYO/RLDOBBcs4HC3NElvYaJF+wFZGcIslrUFcgnxh2q2xlA/3PjVKhuIb7k0ZxXvdsrnRKGjonCRmqerXz2sCNURdMDbo9MhomCjzpUQNFdlFqWInh84cNEWPC50Kbywg+lMnxIqLtzv9iG++4p9ftaJH8ShJ7EfWKLt0uQ=; 24:FfJ9ZVXOwDWY75/LwloS2lwdoLzeH84DGUvs7p8Puv6KNnXhcrvs6+VF1kc+xpH4mAlr3pFut9qgpAEUTBq6RB8ZxE6iKRlcvy7AcK84G6k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 7:HmzeeQ0duEkazs2LvaVz7a1lfLCIdjNeiV6yWKx6TX0F1p2kvFAKoLbV+W8cz2njODb7nV/CgD+nEkJZbNYWRcNMUZ/IjHFUhuMC94jE6TskK0Q6Hk5VAG1rdELeliTqruIEHTpk+shcsKdW2kQAJnJmk0bNS+XxXHjglL0gmQCgqkal8cnXkp/DYU39/QbBYpTh6MrV9PTDJvbnnzkOUwa2GIbBRjUYCkdLkaDlpldW0QUUikJUSERwgMd7jY+MXlf+7QeSLsHTFSZWIEyjCztK2CTRXHLMUed+FYjoxqPz0NkJWKQJukhgDRNmecZlCTjxdzzoDVoC9cTQK2rXByWBwXqxYjbsHkN3tng6Ow9N9kFxHKvHomLbS7XuyjPkwLP4F1zuRZ19HkTpnf2a6S1jhCoO8SpUr/vGn4vr8/7/yxAc2SR9JExtmRaXlSZMAhZUD+ccWvRkf7oEigsT+A== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2017 01:23:27.1796 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1721 Subject: [dpdk-dev] [PATCH v5 20/29] net/enic: use eal I/O device memory read/write 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" From: Santosh Shukla Replace the raw I/O device memory read/write access with eal abstraction for I/O device memory read/write access to fix portability issues across different architectures. CC: John Daley CC: Nelson Escobar Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- drivers/net/enic/enic_compat.h | 27 +++++++++++++++++++-------- drivers/net/enic/enic_rxtx.c | 9 +++++---- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/drivers/net/enic/enic_compat.h b/drivers/net/enic/enic_compat.h index 5dbd983..fc58bb4 100644 --- a/drivers/net/enic/enic_compat.h +++ b/drivers/net/enic/enic_compat.h @@ -41,6 +41,7 @@ #include #include #include +#include #define ENIC_PAGE_ALIGN 4096UL #define ENIC_ALIGN ENIC_PAGE_ALIGN @@ -95,42 +96,52 @@ typedef unsigned long long dma_addr_t; static inline uint32_t ioread32(volatile void *addr) { - return *(volatile uint32_t *)addr; + return rte_read32(addr); } static inline uint16_t ioread16(volatile void *addr) { - return *(volatile uint16_t *)addr; + return rte_read16(addr); } static inline uint8_t ioread8(volatile void *addr) { - return *(volatile uint8_t *)addr; + return rte_read8(addr); } static inline void iowrite32(uint32_t val, volatile void *addr) { - *(volatile uint32_t *)addr = val; + rte_write32(val, addr); +} + +static inline void iowrite32_relaxed(uint32_t val, volatile void *addr) +{ + rte_write32_relaxed(val, addr); } static inline void iowrite16(uint16_t val, volatile void *addr) { - *(volatile uint16_t *)addr = val; + rte_write16(val, addr); } static inline void iowrite8(uint8_t val, volatile void *addr) { - *(volatile uint8_t *)addr = val; + rte_write8(val, addr); } static inline unsigned int readl(volatile void __iomem *addr) { - return *(volatile unsigned int *)addr; + return rte_read32(addr); +} + +static inline unsigned int readl_relaxed(volatile void __iomem *addr) +{ + return rte_read32_relaxed(addr); } static inline void writel(unsigned int val, volatile void __iomem *addr) { - *(volatile unsigned int *)addr = val; + rte_write32(val, addr); } #define min_t(type, x, y) ({ \ diff --git a/drivers/net/enic/enic_rxtx.c b/drivers/net/enic/enic_rxtx.c index f762a26..382d1ab 100644 --- a/drivers/net/enic/enic_rxtx.c +++ b/drivers/net/enic/enic_rxtx.c @@ -380,10 +380,11 @@ enic_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, rte_mb(); if (data_rq->in_use) - iowrite32(data_rq->posted_index, - &data_rq->ctrl->posted_index); + iowrite32_relaxed(data_rq->posted_index, + &data_rq->ctrl->posted_index); rte_compiler_barrier(); - iowrite32(sop_rq->posted_index, &sop_rq->ctrl->posted_index); + iowrite32_relaxed(sop_rq->posted_index, + &sop_rq->ctrl->posted_index); } @@ -550,7 +551,7 @@ uint16_t enic_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, } post: rte_wmb(); - iowrite32(head_idx, &wq->ctrl->posted_index); + iowrite32_relaxed(head_idx, &wq->ctrl->posted_index); done: wq->ring.desc_avail = wq_desc_avail; wq->head_idx = head_idx;