From patchwork Sat Mar 10 01:19:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 884065 X-Patchwork-Delegate: joe.hershberger@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="nlPcY4Qf"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zymbl6L0Jz9sl7 for ; Sat, 10 Mar 2018 12:18:42 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 13FF2C21C27; Sat, 10 Mar 2018 01:18:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAD_ENC_HEADER, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id EB4F4C21D8E; Sat, 10 Mar 2018 01:18:33 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 69514C21C27; Sat, 10 Mar 2018 01:18:32 +0000 (UTC) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30069.outbound.protection.outlook.com [40.107.3.69]) by lists.denx.de (Postfix) with ESMTPS id DA8A1C21D83 for ; Sat, 10 Mar 2018 01:18:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=MnREdweLlf3wHn2BGUkCpGddWrqoZ6X1N1c364mP4mk=; b=nlPcY4QfUE+L4SdVr2yoXi2uxhqfW+c+h4GD4IgPr+Hr5ryih1CnqkVN0nJoYKhMMelrCPKKrHamSJSyq7/zGsrS2aJqd3mdpqzs+X9jp4DrMN75Uf4GAIqy78O+zbXXyj7BN1Acp6+V05n1wFHUZzitV/vej3tafLtd5Ml5Yio= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; Received: from linux-u7w5.ap.freescale.net.net (92.121.68.129) by VI1PR04MB3231.eurprd04.prod.outlook.com (2603:10a6:802:6::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.548.13; Sat, 10 Mar 2018 01:18:29 +0000 From: Peng Fan To: joe.hershberger@ni.com Date: Sat, 10 Mar 2018 09:19:53 +0800 Message-Id: <20180310011957.21801-1-peng.fan@nxp.com> X-Mailer: git-send-email 2.14.1 MIME-Version: 1.0 X-Originating-IP: [92.121.68.129] X-ClientProxiedBy: HK2P15301CA0022.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::32) To VI1PR04MB3231.eurprd04.prod.outlook.com (2603:10a6:802:6::28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 778230e4-0ac2-4ba9-2059-08d58624d5cd X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB3231; X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3231; 3:dHar9NGRXIVLs1XIY+UOVygp3dBFsRGOFOKUAUzng9YTyH+Dlwxr8tlhuW2cbumZULkL+8UI908hn3WgR1EDefwcNQAP7AhUpeIQz5SY9PT+gFrsffWIQcUG1MariGxyvwFEdKVcxj6k04D4sezJPpsZidaCO7tSDHdfY63wPMUCpqYpyDFeykRQqZK6ZDRKmX7BLlkscWlnLVPn9jWL+gruaXQK3GSZlOyqZLalWHAqcTRGb/HgwUyc4kEJlz8x; 25:e4X5hHZRDTNUEUCNEOaffqF7MY7H1WIqdoY7vD0+aHrEd8MaGL6/5pqjk/v6kTPBiCVXjQPIGg0QHp2l18Winy3n2MmGJw0LPFFDy8GnLk1ACdWrADOCckF79FHJRBqo+s/3j3WpyvTSobx9cHf6FjCyOIFWlh4VrwnLr0KBX8qqx+6KExGybXb8makgKxI+rbD/d5mILMDz5P6b3DBwik+h8pRIHa3/eE5UiImmA5Bl9Kju7BxWUdet0e28r7mFMqFxWp07zwYWhWuZ2DPLy8P2r7jBmOaSx+vQi79vtH0rpVEV1x8JmsFUQlyQoVXA/ZJYqRtmeaLuRHuUVCvAGw==; 31:Yl71U59bkooqmcG9Aa9a6h+l/hHBafyOhAZFQzj0YeFR/etHNopACvrblsfv8wFcDOt/DE8m9kW0otgDtptrgE6MOm+FnkNf5GZ05KOYD76vjUQTJK5A4oY25rIcHvWL1doT642Ygpf6GHoIUt9hHnrgEGdOUTApQ1oo3KIuwnzQSSBz7s1JS9k/F4Vtk/Q/EA8oqeWd3RTS1j6pDjfpvs6aPUCPMRGYsRpABg14uQE= X-MS-TrafficTypeDiagnostic: VI1PR04MB3231: X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3231; 20:J/4iDC6Hv4A+YLUuq6+0Kzkloj65WPwlP12ioEZtCEJjO7OedwlVExo/ZMeP7aPpff/MbqSGyDbbOLHQnuSOah3npXSMGZx9BE6hm5LhD1aVjKrKXdFEj4qrTdSypGIY04QDwvTYn9BmDBjGp7jCGJ5M7qrywoXUnTRlGcNVY//wVkyXkgRAeBKAt/shkL3H9Toj3Wh48uAmj1wM8Strw4M/4Ct34NZYONHzV9LNZtbb2tMu9JrXkqrd+W9if1X/5Bgf3DxdgvUyo48IDqNvYrYuTfcYt/jXpGcZ+1VarVrih0t1/KuN/1mQ+k4GLEPuo23leg4+EINUWpPmzcG4uC7W/Jz+QYLCHlz+csR0B3fk6MyR0YFQ5IcFM+pS8taVgEhk0jP0BmrA1UoqmO7G1kkfAYZC9OCITllnL4FQLIdPtH3+SGpn906cw/Vc7VnymXRL1VQYOJ8d2sB5SSGlpjxOeBb9Kk2BEvKIA7uLk6CewVRo4dBSIWTF08bOK3G+; 4:8xt8XMiA6H8wk1tI1hkwRdKVYlI4E6d6VUWaoMYm7ldzrIu5rWekDuSv8lRo1wPBVCSQEEtUCVT/4npgwFkYlJz6q7DRF75nIeIRzcOmmQRZu5AeWqt635XBHBMRXCLlJukM0L3bvOHsTavSMDWnJ1ChU1jSAMYEqfRySb7KOIjBDIfWoOMt9miovBgCD25Xpysvx4P8Dq0Hzu3GCjIxFsSgDAQCZID2Bz698gTL8pvG45JhLIKtFWJp/vH3XzZCQPMhPKRmaFBHMGJxsA850wERb4+XoBshVCWJ7pS3qBjzw3bGmLaIpidwigNYY+1q X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231220)(944501244)(52105095)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:VI1PR04MB3231; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB3231; X-Forefront-PRVS: 06070568C5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(376002)(346002)(39380400002)(366004)(39860400002)(199004)(189003)(186003)(316002)(6512007)(105586002)(97736004)(6506007)(386003)(8936002)(16526019)(86362001)(68736007)(5660300001)(48376002)(39060400002)(50226002)(478600001)(81156014)(305945005)(8676002)(2361001)(51416003)(26005)(2906002)(52116002)(106356001)(6916009)(6666003)(66066001)(2351001)(36756003)(7736002)(53936002)(1076002)(6116002)(3846002)(50466002)(4326008)(16586007)(81166006)(6486002)(47776003)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB3231; H:linux-u7w5.ap.freescale.net.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR04MB3231; 23:ydEjms1JitjEglVwikdDZN9HLlP9HwXPFHY/obTdV?= l9u3J5cEsr6xI8XIExnXldVbDyaKBNj0ACaC3zN6nNEtmc/O/1baqCkX3GYzdSMQ26aQs0nh7fYoxJoe4Wvew747qkUFkqvz1aCG4Blqvpcmm9LPB/BbFHMS/l31AN1RbtOuR0ToYiKusMZ0fwcSYTzkbd9UwtGrAK+2/NOycsVR3XDAt+9L3uI1JOo+2wLQ0qswUJxCjdHDytOrnu6OHX1EmdDhIc4x9KPAoncu1sMgoRPl3Vw/s02nCgcAvCV73fUdAM96FSGAhA9w+JKuCDOLQdhWwzL7iXkh5UG3HJhGbejc7cF/6oghdemqapCXyXTnqtxFkldMYL4sioxsbY/N7kseBwEcpWytc6fEX4zKufpBoKH0d2GE55qVIEegY8ZAN1dR4SR3TF7XdfbtW4dQuLR+cwA1/h7fxT2y+y1Wm2+1wpHGDb9ZbYOmCBP/E08I/EISlZJ0T9/HKnmUMZ13oKzvTYsnFiE9HgzmC+JeFsLR5/dNU2JfnS4rpTfTwJVYIhCzk9m00J5AHq3cLx9oMBodMsRtS2pdwRebtxjj+Un8BK5w7g/m3f/uZL9JGucQSdHim6xNSpIJ5uatRm6yPAYe4W3vii6S4IXhhTKOThoh/y6bcRkEhtnGz9eWQRPiVAv50RCYBaz5X84OiI/eF/0sL7I0Rs/AB6vopgCnzpVmVOI8q2laKlv1qENH1hexc97HH2mxu7xLOM4S+yqCEBcI+XhVtFPs/qa7M5w+7OFpPwaGem2qQIUvRGqdg3HH2Vv4J1EooApcrunDTBSa+aPOWm7ihdWq1MNbD7XsUfO9U6LdFIE1Urwbh7di6H2oRpLfuOr1Qo0zr0a+h5N1cTrWWt/s25eN9Fz0eyzlidxng9WMoKvprCVJrEdIl9flBnHAzsNl5KuU2/PH3UeAz5k/P/Vhlz++O9nsTvW2GZidovJAdooSmQCG2Gxnehem4lmVSPB9wkc/wHiemrLr/T2bLaxGYY4PJoJsrKu55GNdYRwT74u0d6+hrOYaNcRbBy7sD7N7wdmK06/yruh8gTRLT2/f5NTLw/ZiBf4UoxVTeJhS8lepLzsL3NZ1YiaZIoC4o0oBzroAneCr6f5 X-Microsoft-Antispam-Message-Info: 5ptOkACoWf+frEdLQJlAAagaVL7e1xC+v65B1IystXT7oJYEazc7i6fshcZQHiLs6pZPO4eYe14q/GXSVU/YVvoS3MP/w+TuW//RMQVEGQbvJkWRbWZ77pegeGCTFcxilM8fyVhWH2WoqMjW92I4NXrZVbFcO8YnLEhyR3Be+ObwzKhNEQPFDjRSE9E90hNd X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3231; 6:UoEpawvLJR5xWByTrSj+1tkQDTJf+4EbJKhj5Iakh5XbkaYt5zO0DBuu05ByLqe3r9FwjM+Ej1ZiRghYaB01hJjrok5DT4/s0NGrTrfXKH6NL2ASTrkWykUnjQrrjW35PpNVkUVgB4C2ZqdDyzWBXA3dgcsgMFbHwsR5UF/tejjHBOFEScZS9ASahJL0Bg0U0mIKJ7x5npaLlXv3ur62X9YI8IOT3upzcrc/riHPZI8bhrlTfnNXAg5RkpyfDbkm1mKQG/WENiyWYHzkoiOyPHup6sT0Kj1qrtsCyA3EX3iUSnA46edcKrLKV/3UDIawsvD3BnhPsxuQLe/0EQN4Q3fWvEnq+6buxfXadJ5EMc0=; 5:2e79RjL4xzOUAp76dg6vveizi2zfTSFYOVB5voTmiYV4dRgQw9g+oqvO8G0hnTH8fpw6QO0HobuDqrIfJ5Juo9MHrGsnw3KIBmmGUbBcEKWkqiPehBm5OzLl7DM0AosXfiU1iPIDcautss0Bcpeg4y5Rdgh38PiqreBlgGvORuA=; 24:FUwXgtMORgHmegvupvBW7zFQiju8xs06o7AbMiJVJRaUpl2173KnenguCL58mCEurS1dCyo7oeJRDFjrB9ZQMtwe/65RV2rnSbwyqmPruNY=; 7:N/Vzq3rB8XQtKQpjOJVdal4sPirjqbQicFRWDyjJ+Hg5v2jx017VRBO94lysUGh/MPaiEo2zChUvvm+KGtmjZzok9c3HodZUdrodUtqV3gwTLsinE0lUQcC9TXMBCcwdmgKBxtK3OkSHYwwXjeuEIcG4Zx+wigciZa8oY3toJBhp1oHAjlX+xZhEcKOpbhk8hnbK/elV6wu8BnHWEXBxk20UF6n1Kd6Pj70ZtKYZswPJ45y36NAn2SAwFxH/cY89 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2018 01:18:29.1727 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 778230e4-0ac2-4ba9-2059-08d58624d5cd X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3231 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH 1/5] net: fec_mxc: Fix DM driver issue in recv X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Ye Li When using ethernet DM driver, the recv interface has a change with non-DM interface, that driver needs to set the packet pointer and provide it to upper layer to process. In fec driver, the fecmxc_recv functions does not handle the packet pointer parameter. This may cause crash in upper layer processing because the packet pointer is not set. This patch allocates a buffer for the packet pointer and free it through free_pkt interface. Signed-off-by: Ye Li Reviewed-by: Peng Fan Acked-by: Joe Hershberger --- drivers/net/fec_mxc.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index ff7ad91116..7c396d8d95 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -806,7 +806,16 @@ static int fec_recv(struct eth_device *dev) uint16_t bd_status; ulong addr, size, end; int i; + +#ifdef CONFIG_DM_ETH + *packetp = memalign(ARCH_DMA_MINALIGN, FEC_MAX_PKT_SIZE); + if (*packetp == 0) { + printf("%s: error allocating packetp\n", __func__); + return -ENOMEM; + } +#else ALLOC_CACHE_ALIGN_BUFFER(uchar, buff, FEC_MAX_PKT_SIZE); +#endif /* Check if any critical events have happened */ ievent = readl(&fec->eth->ievent); @@ -882,8 +891,13 @@ static int fec_recv(struct eth_device *dev) #ifdef CONFIG_FEC_MXC_SWAP_PACKET swap_packet((uint32_t *)addr, frame_length); #endif + +#ifdef CONFIG_DM_ETH + memcpy(*packetp, (char *)addr, frame_length); +#else memcpy(buff, (char *)addr, frame_length); net_process_received_packet(buff, frame_length); +#endif len = frame_length; } else { if (bd_status & FEC_RBD_ERR) @@ -917,6 +931,16 @@ static int fec_recv(struct eth_device *dev) return len; } +static int fecmxc_free_pkt(struct udevice *dev, uchar *packet, int length) +{ +#ifdef CONFIG_DM_ETH + if (packet) + free(packet); +#endif + + return 0; +} + static void fec_set_dev_name(char *dest, int dev_id) { sprintf(dest, (dev_id == -1) ? "FEC" : "FEC%i", dev_id); @@ -1205,6 +1229,7 @@ static const struct eth_ops fecmxc_ops = { .start = fecmxc_init, .send = fecmxc_send, .recv = fecmxc_recv, + .free_pkt = fecmxc_free_pkt, .stop = fecmxc_halt, .write_hwaddr = fecmxc_set_hwaddr, .read_rom_hwaddr = fecmxc_read_rom_hwaddr,