summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bcmsysport.c
diff options
context:
space:
mode:
authorFlorian Fainelli2017-03-23 18:36:48 +0100
committerDavid S. Miller2017-03-24 20:53:15 +0100
commite9d7af78b22e766a72ddb956a87789249a30a470 (patch)
tree4b8100955fdfe8f41a3666eaac1f540615746772 /drivers/net/ethernet/broadcom/bcmsysport.c
parentnet: systemport: Clear status to reduce spurious interrupts (diff)
downloadkernel-qcow2-linux-e9d7af78b22e766a72ddb956a87789249a30a470.tar.gz
kernel-qcow2-linux-e9d7af78b22e766a72ddb956a87789249a30a470.tar.xz
kernel-qcow2-linux-e9d7af78b22e766a72ddb956a87789249a30a470.zip
net: systemport: Simplify circular pointer arithmetic
Similar to c298ede2fe21 ("net: bcmgenet: simplify circular pointer arithmetic") we don't need to complex arthimetic since we always have a ring size that is a power of 2. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bcmsysport.c')
-rw-r--r--drivers/net/ethernet/broadcom/bcmsysport.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
index c915bcfae0af..61e26c6b26ab 100644
--- a/drivers/net/ethernet/broadcom/bcmsysport.c
+++ b/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -682,11 +682,7 @@ static unsigned int bcm_sysport_desc_rx(struct bcm_sysport_priv *priv,
p_index = rdma_readl(priv, RDMA_CONS_INDEX);
p_index &= RDMA_PROD_INDEX_MASK;
- if (p_index < priv->rx_c_index)
- to_process = (RDMA_CONS_INDEX_MASK + 1) -
- priv->rx_c_index + p_index;
- else
- to_process = p_index - priv->rx_c_index;
+ to_process = (p_index - priv->rx_c_index) & RDMA_CONS_INDEX_MASK;
netif_dbg(priv, rx_status, ndev,
"p_index=%d rx_c_index=%d to_process=%d\n",