All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/4] net: bcmgenet: misc fixes
@ 2014-03-20 17:53 Florian Fainelli
  2014-03-20 17:53 ` [PATCH net-next 1/4] net: bcmgenet: remove unused spinlock member Florian Fainelli
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Florian Fainelli @ 2014-03-20 17:53 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

Hi David,

This patch series contains some misc. fixes for the bcmgenet driver.

Thanks!

Florian Fainelli (4):
  net: bcmgenet: remove unused spinlock member
  net: bcmgenet: add skb_tx_timestamp call
  net: bcmgenet: remove bogus tx queue checks
  net: bcmgenet: manipulate netdev_queue directly

 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 23 ++++++++++-------------
 drivers/net/ethernet/broadcom/genet/bcmgenet.h |  1 -
 2 files changed, 10 insertions(+), 14 deletions(-)

-- 
1.8.3.2

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH net-next 1/4] net: bcmgenet: remove unused spinlock member
  2014-03-20 17:53 [PATCH net-next 0/4] net: bcmgenet: misc fixes Florian Fainelli
@ 2014-03-20 17:53 ` Florian Fainelli
  2014-03-20 17:53 ` [PATCH net-next 2/4] net: bcmgenet: add skb_tx_timestamp call Florian Fainelli
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Florian Fainelli @ 2014-03-20 17:53 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

The spinlock cookie in bcmgenet_priv is never used, get rid of it.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 1 -
 drivers/net/ethernet/broadcom/genet/bcmgenet.h | 1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 72ce6e8115fa..e836c4c35399 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -2498,7 +2498,6 @@ static int bcmgenet_probe(struct platform_device *pdev)
 
 	bcmgenet_set_hw_params(priv);
 
-	spin_lock_init(&priv->lock);
 	/* Mii wait queue */
 	init_waitqueue_head(&priv->wq);
 	/* Always use RX_BUF_LENGTH (2KB) buffer for all chips */
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.h b/drivers/net/ethernet/broadcom/genet/bcmgenet.h
index a6758adefaab..0f117105fed1 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.h
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.h
@@ -523,7 +523,6 @@ struct bcmgenet_priv {
 	void __iomem *base;
 	enum bcmgenet_version version;
 	struct net_device *dev;
-	spinlock_t lock;
 	u32 int0_mask;
 	u32 int1_mask;
 
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net-next 2/4] net: bcmgenet: add skb_tx_timestamp call
  2014-03-20 17:53 [PATCH net-next 0/4] net: bcmgenet: misc fixes Florian Fainelli
  2014-03-20 17:53 ` [PATCH net-next 1/4] net: bcmgenet: remove unused spinlock member Florian Fainelli
@ 2014-03-20 17:53 ` Florian Fainelli
  2014-03-20 17:53 ` [PATCH net-next 3/4] net: bcmgenet: remove bogus tx queue checks Florian Fainelli
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Florian Fainelli @ 2014-03-20 17:53 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

The BCMGENET driver was not TX timestamping the SKBs it queued for
transmission, do this in bcmgenet_xmit() right before kicking the
Transmit DMA engine.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index e836c4c35399..0a9f6df819bb 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -1176,6 +1176,8 @@ static netdev_tx_t bcmgenet_xmit(struct sk_buff *skb, struct net_device *dev)
 		}
 	}
 
+	skb_tx_timestamp(skb);
+
 	/* we kept a software copy of how much we should advance the TDMA
 	 * producer index, now write it down to the hardware
 	 */
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net-next 3/4] net: bcmgenet: remove bogus tx queue checks
  2014-03-20 17:53 [PATCH net-next 0/4] net: bcmgenet: misc fixes Florian Fainelli
  2014-03-20 17:53 ` [PATCH net-next 1/4] net: bcmgenet: remove unused spinlock member Florian Fainelli
  2014-03-20 17:53 ` [PATCH net-next 2/4] net: bcmgenet: add skb_tx_timestamp call Florian Fainelli
@ 2014-03-20 17:53 ` Florian Fainelli
  2014-03-20 17:53 ` [PATCH net-next 4/4] net: bcmgenet: manipulate netdev_queue directly Florian Fainelli
  2014-03-20 21:36 ` [PATCH net-next 0/4] net: bcmgenet: misc fixes David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: Florian Fainelli @ 2014-03-20 17:53 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

netdev_pick_tx already takes care of making sure that a given
skb->queue_mapping value will remain within the number of advertised
hardware queue number, there is no need to re-do this again in the
driver.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 0a9f6df819bb..cfcb046f4de5 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -1125,14 +1125,6 @@ static netdev_tx_t bcmgenet_xmit(struct sk_buff *skb, struct net_device *dev)
 	else
 		index -= 1;
 
-	if ((index != DESC_INDEX) && (index > priv->hw_params->tx_queues - 1)) {
-		netdev_err(dev, "%s: queue_mapping %d is invalid\n",
-				__func__, skb_get_queue_mapping(skb));
-		dev->stats.tx_errors++;
-		dev->stats.tx_dropped++;
-		ret = NETDEV_TX_OK;
-		goto out;
-	}
 	nr_frags = skb_shinfo(skb)->nr_frags;
 	ring = &priv->tx_rings[index];
 
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net-next 4/4] net: bcmgenet: manipulate netdev_queue directly
  2014-03-20 17:53 [PATCH net-next 0/4] net: bcmgenet: misc fixes Florian Fainelli
                   ` (2 preceding siblings ...)
  2014-03-20 17:53 ` [PATCH net-next 3/4] net: bcmgenet: remove bogus tx queue checks Florian Fainelli
@ 2014-03-20 17:53 ` Florian Fainelli
  2014-03-20 21:36 ` [PATCH net-next 0/4] net: bcmgenet: misc fixes David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: Florian Fainelli @ 2014-03-20 17:53 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

Instead of always invoking netdev_get_tx_queue() in bcmgenet_xmit() and
bcmgenet_tx_reclaim(), just get the corresponding netdev_queue pointer
once and for all and manipulate it throughout bcmgenet_xmit() and
bcmgenet_tx_reclaim().

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index cfcb046f4de5..8f87fe001541 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -868,10 +868,12 @@ static void __bcmgenet_tx_reclaim(struct net_device *dev,
 	struct bcmgenet_priv *priv = netdev_priv(dev);
 	int last_tx_cn, last_c_index, num_tx_bds;
 	struct enet_cb *tx_cb_ptr;
+	struct netdev_queue *txq;
 	unsigned int c_index;
 
 	/* Compute how many buffers are transmited since last xmit call */
 	c_index = bcmgenet_tdma_ring_readl(priv, ring->index, TDMA_CONS_INDEX);
+	txq = netdev_get_tx_queue(dev, ring->queue);
 
 	last_c_index = ring->c_index;
 	num_tx_bds = ring->size;
@@ -917,8 +919,8 @@ static void __bcmgenet_tx_reclaim(struct net_device *dev,
 	if (ring->free_bds > (MAX_SKB_FRAGS + 1))
 		ring->int_disable(priv, ring);
 
-	if (__netif_subqueue_stopped(dev, ring->queue))
-		netif_wake_subqueue(dev, ring->queue);
+	if (netif_tx_queue_stopped(txq))
+		netif_tx_wake_queue(txq);
 
 	ring->c_index = c_index;
 }
@@ -1106,6 +1108,7 @@ static netdev_tx_t bcmgenet_xmit(struct sk_buff *skb, struct net_device *dev)
 {
 	struct bcmgenet_priv *priv = netdev_priv(dev);
 	struct bcmgenet_tx_ring *ring = NULL;
+	struct netdev_queue *txq;
 	unsigned long flags = 0;
 	int nr_frags, index;
 	u16 dma_desc_flags;
@@ -1127,10 +1130,11 @@ static netdev_tx_t bcmgenet_xmit(struct sk_buff *skb, struct net_device *dev)
 
 	nr_frags = skb_shinfo(skb)->nr_frags;
 	ring = &priv->tx_rings[index];
+	txq = netdev_get_tx_queue(dev, ring->queue);
 
 	spin_lock_irqsave(&ring->lock, flags);
 	if (ring->free_bds <= nr_frags + 1) {
-		netif_stop_subqueue(dev, ring->queue);
+		netif_tx_stop_queue(txq);
 		netdev_err(dev, "%s: tx ring %d full when queue %d awake\n",
 				__func__, index, ring->queue);
 		ret = NETDEV_TX_BUSY;
@@ -1177,7 +1181,7 @@ static netdev_tx_t bcmgenet_xmit(struct sk_buff *skb, struct net_device *dev)
 			ring->prod_index, TDMA_PROD_INDEX);
 
 	if (ring->free_bds <= (MAX_SKB_FRAGS + 1)) {
-		netif_stop_subqueue(dev, ring->queue);
+		netif_tx_stop_queue(txq);
 		ring->int_enable(priv, ring);
 	}
 
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 0/4] net: bcmgenet: misc fixes
  2014-03-20 17:53 [PATCH net-next 0/4] net: bcmgenet: misc fixes Florian Fainelli
                   ` (3 preceding siblings ...)
  2014-03-20 17:53 ` [PATCH net-next 4/4] net: bcmgenet: manipulate netdev_queue directly Florian Fainelli
@ 2014-03-20 21:36 ` David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2014-03-20 21:36 UTC (permalink / raw)
  To: f.fainelli; +Cc: netdev

From: Florian Fainelli <f.fainelli@gmail.com>
Date: Thu, 20 Mar 2014 10:53:19 -0700

> This patch series contains some misc. fixes for the bcmgenet driver.

Series applied, thanks Florian.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-03-20 21:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-20 17:53 [PATCH net-next 0/4] net: bcmgenet: misc fixes Florian Fainelli
2014-03-20 17:53 ` [PATCH net-next 1/4] net: bcmgenet: remove unused spinlock member Florian Fainelli
2014-03-20 17:53 ` [PATCH net-next 2/4] net: bcmgenet: add skb_tx_timestamp call Florian Fainelli
2014-03-20 17:53 ` [PATCH net-next 3/4] net: bcmgenet: remove bogus tx queue checks Florian Fainelli
2014-03-20 17:53 ` [PATCH net-next 4/4] net: bcmgenet: manipulate netdev_queue directly Florian Fainelli
2014-03-20 21:36 ` [PATCH net-next 0/4] net: bcmgenet: misc fixes David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.