Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c298ede2 authored by Doug Berger's avatar Doug Berger Committed by David S. Miller
Browse files

net: bcmgenet: simplify circular pointer arithmetic



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: default avatarDoug Berger <opendmb@gmail.com>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 83ee102a
Loading
Loading
Loading
Loading
+5 −14
Original line number Diff line number Diff line
/*
 * 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);