From patchwork Mon Mar 7 22:37:09 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Shtylyov X-Patchwork-Id: 8523621 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: X-Original-To: patchwork-linux-renesas-soc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id E57149F46A for ; Mon, 7 Mar 2016 22:37:15 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4BC3720142 for ; Mon, 7 Mar 2016 22:37:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9C50720131 for ; Mon, 7 Mar 2016 22:37:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753649AbcCGWhO (ORCPT ); Mon, 7 Mar 2016 17:37:14 -0500 Received: from mail-lb0-f181.google.com ([209.85.217.181]:32803 "EHLO mail-lb0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753520AbcCGWhM (ORCPT ); Mon, 7 Mar 2016 17:37:12 -0500 Received: by mail-lb0-f181.google.com with SMTP id k15so148448456lbg.0 for ; Mon, 07 Mar 2016 14:37:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:organization:user-agent :in-reply-to:references:mime-version:content-transfer-encoding; bh=cfLrXfaQ/5i996JLRL895NfSzF/Ndwf0asiqdALSoSM=; b=M6QDC+G84rIQbBMYiB10XeT/fD+jBuxtvTaOzOuWddokgCEZ5vKvbyG64EdBgt338h hhy23n/yR/xlylcJ9ph0zcqneNFXSScLYioa3LJMMxX8cEwvW7jQgZ9J+aVFxlRp/kcr 4gF1jw3Vi4qpfuhV259sTLQCUSpTTAc6CpKc/U7u0tm7s2trr1GcEsQP3aSVlyRCyPU9 i5jfHEVEbZmQkxV2LGC2gwI9Kv1mdHls8O42yMnlTxIiExzclDYSPp40SVN67Q0c607a a7OiL9Uam/kQyhbYu13sZjk7TQcpcQMKzX8tQIzGL5iH2L1SfOXffVzlzZHSkjTaPN7n ItQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:organization :user-agent:in-reply-to:references:mime-version :content-transfer-encoding; bh=cfLrXfaQ/5i996JLRL895NfSzF/Ndwf0asiqdALSoSM=; b=AXCAIAkwvAXG/BPklyt0/Tuvz0BHnF28gYjwukpgN9wM0FbgIFFKVyWaldjOdNnBER zNoGky1HJsckZwmtQEDMgBTKMzNWHXUTod6olWanGc0JKLJxuooC1Tsd7dweVIpji+NG VGWndQu9+3Bb69qxLgK2eBMxStOgaWe2NVsNhrX5Hfb9Llhq7Xt+k6PTdsGgK1OmTjFu 1ePFZHAoN97dUI/WN8bXPrEuyCR0cmLrMxWwZkC67vKeBwYWXKIEnkf6VAbRptBZ3Qpo C46MU+Ew+B8e4AVGlEEOETySAHdcv4P8AG/tluAfop6UvL9xjk3niPapoSHhZp6KwPLH qnRg== X-Gm-Message-State: AD7BkJJdKRrEGU19DNbyVyApwSet3ziQPs5smBoyOpfr/09p4o/tBdXBbbwxIzKykiJnTA== X-Received: by 10.112.13.33 with SMTP id e1mr6609405lbc.79.1457390231203; Mon, 07 Mar 2016 14:37:11 -0800 (PST) Received: from wasted.cogentembedded.com ([83.149.8.111]) by smtp.gmail.com with ESMTPSA id y184sm3138250lfd.16.2016.03.07.14.37.10 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 07 Mar 2016 14:37:10 -0800 (PST) From: Sergei Shtylyov To: netdev@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org Subject: [PATCH 2/2] sh_eth: advance 'rxdesc' later in sh_eth_ring_format() Date: Tue, 08 Mar 2016 01:37:09 +0300 Message-ID: <3282122.t8AnRHByyx@wasted.cogentembedded.com> Organization: Cogent Embedded Inc. User-Agent: KMail/4.14.10 (Linux/4.3.6-201.fc22.x86_64; KDE/4.14.14; x86_64; ; ) In-Reply-To: <4881302.XJJSmqvE1J@wasted.cogentembedded.com> References: <4881302.XJJSmqvE1J@wasted.cogentembedded.com> MIME-Version: 1.0 Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI,RCVD_IN_SORBS_WEB,RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Iff dma_map_single() fails, 'rxdesc' should point to the last filled RX descriptor, so that it can be marked as the last one, however the driver would have already advanced it by that time. In order to fix that, only fill an RX descriptor once all the data for it is ready. Signed-off-by: Sergei Shtylyov --- drivers/net/ethernet/renesas/sh_eth.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) Index: net/drivers/net/ethernet/renesas/sh_eth.c =================================================================== --- net.orig/drivers/net/ethernet/renesas/sh_eth.c +++ net/drivers/net/ethernet/renesas/sh_eth.c @@ -1136,11 +1136,8 @@ static void sh_eth_ring_format(struct ne break; sh_eth_set_receive_align(skb); - /* RX descriptor */ - rxdesc = &mdp->rx_ring[i]; /* The size of the buffer is a multiple of 32 bytes. */ buf_len = ALIGN(mdp->rx_buf_sz, 32); - rxdesc->len = cpu_to_le32(buf_len << 16); dma_addr = dma_map_single(&ndev->dev, skb->data, buf_len, DMA_FROM_DEVICE); if (dma_mapping_error(&ndev->dev, dma_addr)) { @@ -1148,6 +1145,10 @@ static void sh_eth_ring_format(struct ne break; } mdp->rx_skbuff[i] = skb; + + /* RX descriptor */ + rxdesc = &mdp->rx_ring[i]; + rxdesc->len = cpu_to_le32(buf_len << 16); rxdesc->addr = cpu_to_le32(dma_addr); rxdesc->status = cpu_to_le32(RD_RACT | RD_RFP);