Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1599953 > unrolled thread
| Started by | Doug Berger <opendmb@gmail.com> |
|---|---|
| First post | 2017-03-14 01:50 +0100 |
| Last post | 2017-03-14 02:00 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH net-next 03/12] net: bcmgenet: simplify circular pointer arithmetic Doug Berger <opendmb@gmail.com> - 2017-03-14 01:50 +0100
Re: [PATCH net-next 03/12] net: bcmgenet: simplify circular pointer arithmetic Florian Fainelli <f.fainelli@gmail.com> - 2017-03-14 02:00 +0100
| From | Doug Berger <opendmb@gmail.com> |
|---|---|
| Date | 2017-03-14 01:50 +0100 |
| Subject | [PATCH net-next 03/12] net: bcmgenet: simplify circular pointer arithmetic |
| Message-ID | <tkIP0-AW-19@gated-at.bofh.it> |
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 <opendmb@gmail.com> --- 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); -- 2.11.1
[toc] | [next] | [standalone]
| From | Florian Fainelli <f.fainelli@gmail.com> |
|---|---|
| Date | 2017-03-14 02:00 +0100 |
| Subject | Re: [PATCH net-next 03/12] net: bcmgenet: simplify circular pointer arithmetic |
| Message-ID | <tkIYF-EG-13@gated-at.bofh.it> |
| In reply to | #1599953 |
On 03/13/2017 05:41 PM, Doug Berger wrote: > 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 <opendmb@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -- Florian
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web