From patchwork Tue Mar 14 00:41:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 738511 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vhwxq5Jkfz9s75 for ; Tue, 14 Mar 2017 11:45:19 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="MUsguep0"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753777AbdCNAmS (ORCPT ); Mon, 13 Mar 2017 20:42:18 -0400 Received: from mail-qt0-f193.google.com ([209.85.216.193]:34244 "EHLO mail-qt0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753689AbdCNAmQ (ORCPT ); Mon, 13 Mar 2017 20:42:16 -0400 Received: by mail-qt0-f193.google.com with SMTP id x35so8366810qtc.1; Mon, 13 Mar 2017 17:42:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yhRoWwFN9Kzxy03wF56lXPAjliJiBWKNxR17w1vpNpU=; b=MUsguep0tmOTsmUkC+Q0J00QFDpOnYh0Su1T+aBeN6SaArEBRcRw9ujOl77mfxLL2u z6PeFa7cyg2VbRm2brVQTuzb/gazALgJ/l8puBzoy1mAYGsXthXtLUNJjlEJgYz8bpKD 6jccqeJW3ZWa+qbMa/Gq2Jw/BLgQApOlCHuHZmOZvSIocDUI6j/qYQSAKSMrkk3Rs6sh dEhFx9gAPS/rZcfNsAqvWWjeA4j6DRMKZv7Z/7J9IbpkpCYPiclFRPDVxqbUVQQBRIjJ +JkYfyP83NV95Zr9fSs+I8z+ALs51Iv7EClgyJB8MYw82x0vICyjxSyL3HYby7k31f1P 1JKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yhRoWwFN9Kzxy03wF56lXPAjliJiBWKNxR17w1vpNpU=; b=Dg9tNlHSdrgady/BNybEhMpqjRwAjl8Nv+1tnzyiix4QUSuGQ/dw9RSYfhGPEbVWSi AyCoY4owUIH+YkG86K3kH4V44Ad8o99hOdz67b+IgL6yYLa4O/8Q9xlj/S2ZJw1wDE9e ReKqTgRj+SNZbFhC69FEFwD2ZETMfOyG/8GuVplzXzYcCdKqgLzknCvXC+WSJHdth9h8 HeWMjfkdxk3lUl1ip2vuRZJ8V9rawSISCT97Niycfei5g6mOZM4ThLgAuTRiJ+C7xOTk r8IlnJ73ctwmcMkxCcmp9/CfuXN+gMWAZBcneDTpUwHG/9Jzf/koVsXqDhcTUkZ7LDTy OP+A== X-Gm-Message-State: AMke39lakH7SKaLgcTXzLR/Fh3wsaW/7QV+LTRo2296j4DhQhgpfVt62lpQLPKY/z4rEUA== X-Received: by 10.237.36.53 with SMTP id r50mr38013108qtc.46.1489452129688; Mon, 13 Mar 2017 17:42:09 -0700 (PDT) Received: from stb-bld-02.irv.broadcom.com ([192.19.255.250]) by smtp.gmail.com with ESMTPSA id y52sm13353343qty.60.2017.03.13.17.42.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Mar 2017 17:42:08 -0700 (PDT) From: Doug Berger To: f.fainelli@gmail.com Cc: robh+dt@kernel.org, mark.rutland@arm.com, davem@davemloft.net, rafal@milecki.pl, xow@google.com, joel@jms.id.au, jon.mason@broadcom.com, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, pgynther@google.com, jaedon.shin@gmail.com, Doug Berger Subject: [PATCH net-next 03/12] net: bcmgenet: simplify circular pointer arithmetic Date: Mon, 13 Mar 2017 17:41:33 -0700 Message-Id: <20170314004142.4746-4-opendmb@gmail.com> X-Mailer: git-send-email 2.11.1 In-Reply-To: <20170314004142.4746-1-opendmb@gmail.com> References: <20170314004142.4746-1-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org A 2's complement subtraction will always do a borrow, so masking off the sign bits is the same as conditionally adding (mask+1). Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index f92896835d2a..2c008b09c4e3 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -1,7 +1,7 @@ /* * Broadcom GENET (Gigabit Ethernet) controller driver * - * Copyright (c) 2014 Broadcom Corporation + * Copyright (c) 2014-2017 Broadcom * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -1175,13 +1175,9 @@ static unsigned int __bcmgenet_tx_reclaim(struct net_device *dev, unsigned int txbds_processed = 0; /* Compute how many buffers are transmitted since last xmit call */ - c_index = bcmgenet_tdma_ring_readl(priv, ring->index, TDMA_CONS_INDEX); - c_index &= DMA_C_INDEX_MASK; - - if (likely(c_index >= ring->c_index)) - txbds_ready = c_index - ring->c_index; - else - txbds_ready = (DMA_C_INDEX_MASK + 1) - ring->c_index + c_index; + c_index = bcmgenet_tdma_ring_readl(priv, ring->index, TDMA_CONS_INDEX) + & DMA_C_INDEX_MASK; + txbds_ready = (c_index - ring->c_index) & DMA_C_INDEX_MASK; netif_dbg(priv, tx_done, dev, "%s ring=%d old_c_index=%u c_index=%u txbds_ready=%u\n", @@ -1611,12 +1607,7 @@ static unsigned int bcmgenet_desc_rx(struct bcmgenet_rx_ring *ring, } p_index &= DMA_P_INDEX_MASK; - - if (likely(p_index >= ring->c_index)) - rxpkttoprocess = p_index - ring->c_index; - else - rxpkttoprocess = (DMA_C_INDEX_MASK + 1) - ring->c_index + - p_index; + rxpkttoprocess = (p_index - ring->c_index) & DMA_C_INDEX_MASK; netif_dbg(priv, rx_status, dev, "RDMA: rxpkttoprocess=%d\n", rxpkttoprocess);