netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V3 00/11] net: expand time stamping, batch #2
@ 2011-06-20  7:51 Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 01/11] net: export the receive time stamping hook for non-NAPI drivers Richard Cochran
                   ` (11 more replies)
  0 siblings, 12 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet

This patch series represents a continuation of the effort to get
better coverage of the SO_TIMESTAMPING socket API in the Ethernet
drivers.  Adding time stamping support to a given driver solves two
separate issues, namely software transmit time stamping and hardware
time stamping in PHY devices.

This second batch adds the hooks into all remaining (?) arm and
powerpc MAC drivers using phylib. The first patch exports the receive
hook for use by non-NAPI drivers when compiled as modules. Patch #5
has been tested on real hardware, but the rest have only been compile
tested.

Richard Cochran (11):
  net: export the receive time stamping hook for non-NAPI drivers
  lib8390: enable transmit and receive time stamping.
  emaclite: enable transmit and receive time stamping.
  ll_temac: enable transmit and receive time stamping.
  fec_mpc52xx: enable transmit and receive time stamping.
  macb: enable transmit time stamping.
  fs_enet: enable transmit time stamping.
  smsc911x: enable transmit time stamping.
  pxa168_eth: enable transmit time stamping.
  mv643xx_eth: enable transmit time stamping.
  ucc_geth: enable transmit time stamping.

 drivers/net/fec_mpc52xx.c          |    4 +++-
 drivers/net/fs_enet/fs_enet-main.c |    2 ++
 drivers/net/lib8390.c              |    5 +++--
 drivers/net/ll_temac_main.c        |    5 ++++-
 drivers/net/macb.c                 |    2 ++
 drivers/net/mv643xx_eth.c          |    2 ++
 drivers/net/pxa168_eth.c           |    3 +++
 drivers/net/smsc911x.c             |    1 +
 drivers/net/ucc_geth.c             |    2 ++
 drivers/net/xilinx_emaclite.c      |    9 +++++++--
 net/core/timestamping.c            |    1 +
 11 files changed, 30 insertions(+), 6 deletions(-)


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

* [PATCH V3 01/11] net: export the receive time stamping hook for non-NAPI drivers
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 02/11] lib8390: enable transmit and receive time stamping Richard Cochran
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet

Ethernet MAC drivers based on phylib (but not using NAPI) can
enable hardware time stamping in phy devices by calling netif_rx()
conditionally based on a call to skb_defer_rx_timestamp().

This commit exports that function so that drivers calling it may
be compiled as modules.

Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 net/core/timestamping.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/net/core/timestamping.c b/net/core/timestamping.c
index 3b00a6b..98a5264 100644
--- a/net/core/timestamping.c
+++ b/net/core/timestamping.c
@@ -122,6 +122,7 @@ bool skb_defer_rx_timestamp(struct sk_buff *skb)
 
 	return false;
 }
+EXPORT_SYMBOL_GPL(skb_defer_rx_timestamp);
 
 void __init skb_timestamping_init(void)
 {
-- 
1.7.0.4


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

* [PATCH V3 02/11] lib8390: enable transmit and receive time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 01/11] net: export the receive time stamping hook for non-NAPI drivers Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 03/11] emaclite: " Richard Cochran
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet

This patch enables software (and phy device) time stamping. This file is
included by drivers/net/ax88796.c, which is based on phylib. So, this
patch makes hardware time stamping in the PHY possible.

Compile tested only.

Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/lib8390.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/lib8390.c b/drivers/net/lib8390.c
index 17b75e5..70eb207 100644
--- a/drivers/net/lib8390.c
+++ b/drivers/net/lib8390.c
@@ -410,7 +410,7 @@ static netdev_tx_t __ei_start_xmit(struct sk_buff *skb,
 
 	spin_unlock(&ei_local->page_lock);
 	enable_irq_lockdep_irqrestore(dev->irq, &flags);
-
+	skb_tx_timestamp(skb);
 	dev_kfree_skb (skb);
 	dev->stats.tx_bytes += send_length;
 
@@ -758,7 +758,8 @@ static void ei_receive(struct net_device *dev)
 				skb_put(skb, pkt_len);	/* Make room */
 				ei_block_input(dev, pkt_len, skb, current_offset + sizeof(rx_frame));
 				skb->protocol=eth_type_trans(skb,dev);
-				netif_rx(skb);
+				if (!skb_defer_rx_timestamp(skb))
+					netif_rx(skb);
 				dev->stats.rx_packets++;
 				dev->stats.rx_bytes += pkt_len;
 				if (pkt_stat & ENRSR_PHY)
-- 
1.7.0.4


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

* [PATCH V3 03/11] emaclite: enable transmit and receive time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 01/11] net: export the receive time stamping hook for non-NAPI drivers Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 02/11] lib8390: enable transmit and receive time stamping Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 04/11] ll_temac: " Richard Cochran
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet, John Linn

This patch enables software (and phy device) time stamping. Since this
MAC uses phylib, adding the hooks make hardware time stamping in the phy
possible.

Compile tested only.

Cc: John Linn <john.linn@xilinx.com>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/xilinx_emaclite.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index 372572c..8cae4f6 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -647,7 +647,8 @@ static void xemaclite_rx_handler(struct net_device *dev)
 	dev->stats.rx_packets++;
 	dev->stats.rx_bytes += len;
 
-	netif_rx(skb);		/* Send the packet upstream */
+	if (!skb_defer_rx_timestamp(skb))
+		netif_rx(skb);	/* Send the packet upstream */
 }
 
 /**
@@ -1029,15 +1030,19 @@ static int xemaclite_send(struct sk_buff *orig_skb, struct net_device *dev)
 	spin_lock_irqsave(&lp->reset_lock, flags);
 	if (xemaclite_send_data(lp, (u8 *) new_skb->data, len) != 0) {
 		/* If the Emaclite Tx buffer is busy, stop the Tx queue and
-		 * defer the skb for transmission at a later point when the
+		 * defer the skb for transmission during the ISR, after the
 		 * current transmission is complete */
 		netif_stop_queue(dev);
 		lp->deferred_skb = new_skb;
+		/* Take the time stamp now, since we can't do this in an ISR. */
+		skb_tx_timestamp(new_skb);
 		spin_unlock_irqrestore(&lp->reset_lock, flags);
 		return 0;
 	}
 	spin_unlock_irqrestore(&lp->reset_lock, flags);
 
+	skb_tx_timestamp(new_skb);
+
 	dev->stats.tx_bytes += len;
 	dev_kfree_skb(new_skb);
 
-- 
1.7.0.4


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

* [PATCH V3 04/11] ll_temac: enable transmit and receive time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
                   ` (2 preceding siblings ...)
  2011-06-20  7:51 ` [PATCH V3 03/11] emaclite: " Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 05/11] fec_mpc52xx: " Richard Cochran
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet, Grant Likely

This patch enables software (and phy device) time stamping. Since this MAC
is based on phylib, adding the hooks makes hardware time stamping in the
phy possible.

Compile tested only.

Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/ll_temac_main.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ll_temac_main.c b/drivers/net/ll_temac_main.c
index b7948cc..ce9a607 100644
--- a/drivers/net/ll_temac_main.c
+++ b/drivers/net/ll_temac_main.c
@@ -727,6 +727,8 @@ static int temac_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 	if (lp->tx_bd_tail >= TX_BD_NUM)
 		lp->tx_bd_tail = 0;
 
+	skb_tx_timestamp(skb);
+
 	/* Kick off the transfer */
 	lp->dma_out(lp, TX_TAILDESC_PTR, tail_p); /* DMA start */
 
@@ -772,7 +774,8 @@ static void ll_temac_recv(struct net_device *ndev)
 			skb->ip_summed = CHECKSUM_COMPLETE;
 		}
 
-		netif_rx(skb);
+		if (!skb_defer_rx_timestamp(skb))
+			netif_rx(skb);
 
 		ndev->stats.rx_packets++;
 		ndev->stats.rx_bytes += length;
-- 
1.7.0.4


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

* [PATCH V3 05/11] fec_mpc52xx: enable transmit and receive time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
                   ` (3 preceding siblings ...)
  2011-06-20  7:51 ` [PATCH V3 04/11] ll_temac: " Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 06/11] macb: enable transmit " Richard Cochran
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet, Grant Likely

This patch enables software (and phy device) time stamping. Software
time stamping using the SO_TIMESTAMPING API was tested and found to be
working on the LITE5200B board.

Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/fec_mpc52xx.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index 9f81b1a..a4dd6a4 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -335,6 +335,7 @@ static int mpc52xx_fec_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	bd->skb_pa = dma_map_single(dev->dev.parent, skb->data, skb->len,
 				    DMA_TO_DEVICE);
 
+	skb_tx_timestamp(skb);
 	bcom_submit_next_buffer(priv->tx_dmatsk, skb);
 	spin_unlock_irqrestore(&priv->lock, flags);
 
@@ -434,7 +435,8 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void *dev_id)
 		length = status & BCOM_FEC_RX_BD_LEN_MASK;
 		skb_put(rskb, length - 4);	/* length without CRC32 */
 		rskb->protocol = eth_type_trans(rskb, dev);
-		netif_rx(rskb);
+		if (!skb_defer_rx_timestamp(skb))
+			netif_rx(rskb);
 
 		spin_lock(&priv->lock);
 	}
-- 
1.7.0.4


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

* [PATCH V3 06/11] macb: enable transmit time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
                   ` (4 preceding siblings ...)
  2011-06-20  7:51 ` [PATCH V3 05/11] fec_mpc52xx: " Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 07/11] fs_enet: " Richard Cochran
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet, Nicolas Ferre

This patch enables software (and phy device) transmit time stamping
Compile tested only.

Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/macb.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 6c6a028..fab63bf 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -669,6 +669,8 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	entry = NEXT_TX(entry);
 	bp->tx_head = entry;
 
+	skb_tx_timestamp(skb);
+
 	macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART));
 
 	if (TX_BUFFS_AVAIL(bp) < 1)
-- 
1.7.0.4


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

* [PATCH V3 07/11] fs_enet: enable transmit time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
                   ` (5 preceding siblings ...)
  2011-06-20  7:51 ` [PATCH V3 06/11] macb: enable transmit " Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 08/11] smsc911x: " Richard Cochran
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet, Pantelis Antoniou, Vitaly Bordug

This patch enables software (and phy device) transmit time stamping.
Compile tested only.

Cc: Pantelis Antoniou <pantelis.antoniou@gmail.com>
Cc: Vitaly Bordug <vbordug@ru.mvista.com>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/fs_enet/fs_enet-main.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index 21abb5c..329ef23 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -697,6 +697,8 @@ static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)
 		sc |= BD_ENET_TX_PAD;
 	CBDS_SC(bdp, sc);
 
+	skb_tx_timestamp(skb);
+
 	(*fep->ops->tx_kickstart)(dev);
 
 	spin_unlock_irqrestore(&fep->tx_lock, flags);
-- 
1.7.0.4


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

* [PATCH V3 08/11] smsc911x: enable transmit time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
                   ` (6 preceding siblings ...)
  2011-06-20  7:51 ` [PATCH V3 07/11] fs_enet: " Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 09/11] pxa168_eth: " Richard Cochran
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet, Steve Glendinning

This patch enables software (and phy device) transmit time stamping.
Compile tested only.

Cc: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/smsc911x.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
index c6d47d1..6d08b0f 100644
--- a/drivers/net/smsc911x.c
+++ b/drivers/net/smsc911x.c
@@ -1473,6 +1473,7 @@ static int smsc911x_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
 	pdata->ops->tx_writefifo(pdata, (unsigned int *)bufp, wrsz);
 	freespace -= (skb->len + 32);
+	skb_tx_timestamp(skb);
 	dev_kfree_skb(skb);
 
 	if (unlikely(smsc911x_tx_get_txstatcount(pdata) >= 30))
-- 
1.7.0.4


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

* [PATCH V3 09/11] pxa168_eth: enable transmit time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
                   ` (7 preceding siblings ...)
  2011-06-20  7:51 ` [PATCH V3 08/11] smsc911x: " Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20  7:51 ` [PATCH V3 10/11] mv643xx_eth: " Richard Cochran
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev
  Cc: David Miller, Eric Dumazet, Sachin Sanap, Zhangfei Gao,
	Philip Rakity, Mark Brown

This patch enables software (and phy device) transmit time stamping
Compile tested only.

Cc: Sachin Sanap <ssanap@marvell.com>
Cc: Zhangfei Gao <zgao6@marvell.com>
Cc: Philip Rakity <prakity@marvell.com>
Cc: Mark Brown <markb@marvell.com>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/pxa168_eth.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/net/pxa168_eth.c b/drivers/net/pxa168_eth.c
index 5f597ca..1f97db1 100644
--- a/drivers/net/pxa168_eth.c
+++ b/drivers/net/pxa168_eth.c
@@ -1267,6 +1267,9 @@ static int pxa168_eth_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	pep->tx_skb[tx_index] = skb;
 	desc->byte_cnt = length;
 	desc->buf_ptr = dma_map_single(NULL, skb->data, length, DMA_TO_DEVICE);
+
+	skb_tx_timestamp(skb);
+
 	wmb();
 	desc->cmd_sts = BUF_OWNED_BY_DMA | TX_GEN_CRC | TX_FIRST_DESC |
 			TX_ZERO_PADDING | TX_LAST_DESC | TX_EN_INT;
-- 
1.7.0.4


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

* [PATCH V3 10/11] mv643xx_eth: enable transmit time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
                   ` (8 preceding siblings ...)
  2011-06-20  7:51 ` [PATCH V3 09/11] pxa168_eth: " Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20 16:35   ` Lennert Buytenhek
  2011-06-20  7:51 ` [PATCH V3 11/11] ucc_geth: " Richard Cochran
  2011-06-20 20:57 ` [PATCH V3 00/11] net: expand time stamping, batch #2 David Miller
  11 siblings, 1 reply; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet, Lennert Buytenhek

This patch enables software (and phy device) transmit time stamping.
Compile tested only.

Cc: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/mv643xx_eth.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 1b7d2c1..3671714 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -847,6 +847,8 @@ no_csum:
 	/* clear TX_END status */
 	mp->work_tx_end &= ~(1 << txq->index);
 
+	skb_tx_timestamp(skb);
+
 	/* ensure all descriptors are written before poking hardware */
 	wmb();
 	txq_enable(txq);
-- 
1.7.0.4


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

* [PATCH V3 11/11] ucc_geth: enable transmit time stamping.
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
                   ` (9 preceding siblings ...)
  2011-06-20  7:51 ` [PATCH V3 10/11] mv643xx_eth: " Richard Cochran
@ 2011-06-20  7:51 ` Richard Cochran
  2011-06-20 20:57 ` [PATCH V3 00/11] net: expand time stamping, batch #2 David Miller
  11 siblings, 0 replies; 17+ messages in thread
From: Richard Cochran @ 2011-06-20  7:51 UTC (permalink / raw)
  To: netdev; +Cc: David Miller, Eric Dumazet, Shlomi Gridish, Li Yang

This patch enables software (and phy device) transmit time stamping.
Compile tested only.

Cc: Shlomi Gridish <gridish@freescale.com>
Cc: Li Yang <leoli@freescale.com>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/ucc_geth.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index ef04105..3127700 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3165,6 +3165,8 @@ static int ucc_geth_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
 	ugeth->txBd[txQ] = bd;
 
+	skb_tx_timestamp(skb);
+
 	if (ugeth->p_scheduler) {
 		ugeth->cpucount[txQ]++;
 		/* Indicate to QE that there are more Tx bds ready for
-- 
1.7.0.4


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

* Re: [PATCH V3 10/11] mv643xx_eth: enable transmit time stamping.
  2011-06-20  7:51 ` [PATCH V3 10/11] mv643xx_eth: " Richard Cochran
@ 2011-06-20 16:35   ` Lennert Buytenhek
  2011-06-20 20:55     ` David Miller
  0 siblings, 1 reply; 17+ messages in thread
From: Lennert Buytenhek @ 2011-06-20 16:35 UTC (permalink / raw)
  To: Richard Cochran; +Cc: netdev, David Miller, Eric Dumazet

On Mon, Jun 20, 2011 at 09:51:32AM +0200, Richard Cochran wrote:

> This patch enables software (and phy device) transmit time stamping.
> Compile tested only.
> 
> Cc: Lennert Buytenhek <buytenh@wantstofly.org>
> Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
> ---
>  drivers/net/mv643xx_eth.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
> index 1b7d2c1..3671714 100644
> --- a/drivers/net/mv643xx_eth.c
> +++ b/drivers/net/mv643xx_eth.c
> @@ -847,6 +847,8 @@ no_csum:
>  	/* clear TX_END status */
>  	mp->work_tx_end &= ~(1 << txq->index);
>  
> +	skb_tx_timestamp(skb);
> +
>  	/* ensure all descriptors are written before poking hardware */
>  	wmb();
>  	txq_enable(txq);

This only timestamps the skb _after_ writing the final (cmd_sts) HW TX
descriptor word, and so if your previous patch is correct (which I don't
think it is), this would be buggy as well.

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

* Re: [PATCH V3 10/11] mv643xx_eth: enable transmit time stamping.
  2011-06-20 16:35   ` Lennert Buytenhek
@ 2011-06-20 20:55     ` David Miller
  2011-06-21  4:35       ` [PATCH V4] " Richard Cochran
  0 siblings, 1 reply; 17+ messages in thread
From: David Miller @ 2011-06-20 20:55 UTC (permalink / raw)
  To: buytenh; +Cc: richardcochran, netdev, eric.dumazet

From: Lennert Buytenhek <buytenh@wantstofly.org>
Date: Mon, 20 Jun 2011 18:35:24 +0200

> On Mon, Jun 20, 2011 at 09:51:32AM +0200, Richard Cochran wrote:
> 
>> This patch enables software (and phy device) transmit time stamping.
>> Compile tested only.
>> 
>> Cc: Lennert Buytenhek <buytenh@wantstofly.org>
>> Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
>> ---
>>  drivers/net/mv643xx_eth.c |    2 ++
>>  1 files changed, 2 insertions(+), 0 deletions(-)
>> 
>> diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
>> index 1b7d2c1..3671714 100644
>> --- a/drivers/net/mv643xx_eth.c
>> +++ b/drivers/net/mv643xx_eth.c
>> @@ -847,6 +847,8 @@ no_csum:
>>  	/* clear TX_END status */
>>  	mp->work_tx_end &= ~(1 << txq->index);
>>  
>> +	skb_tx_timestamp(skb);
>> +
>>  	/* ensure all descriptors are written before poking hardware */
>>  	wmb();
>>  	txq_enable(txq);
> 
> This only timestamps the skb _after_ writing the final (cmd_sts) HW TX
> descriptor word, and so if your previous patch is correct (which I don't
> think it is), this would be buggy as well.

Agreed.

I'll apply the other patches and leave this one for now.

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

* Re: [PATCH V3 00/11] net: expand time stamping, batch #2
  2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
                   ` (10 preceding siblings ...)
  2011-06-20  7:51 ` [PATCH V3 11/11] ucc_geth: " Richard Cochran
@ 2011-06-20 20:57 ` David Miller
  11 siblings, 0 replies; 17+ messages in thread
From: David Miller @ 2011-06-20 20:57 UTC (permalink / raw)
  To: richardcochran; +Cc: netdev, eric.dumazet

From: Richard Cochran <richardcochran@gmail.com>
Date: Mon, 20 Jun 2011 09:51:22 +0200

> This patch series represents a continuation of the effort to get
> better coverage of the SO_TIMESTAMPING socket API in the Ethernet
> drivers.  Adding time stamping support to a given driver solves two
> separate issues, namely software transmit time stamping and hardware
> time stamping in PHY devices.
> 
> This second batch adds the hooks into all remaining (?) arm and
> powerpc MAC drivers using phylib. The first patch exports the receive
> hook for use by non-NAPI drivers when compiled as modules. Patch #5
> has been tested on real hardware, but the rest have only been compile
> tested.

All except patch #10 applied, thanks.

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

* [PATCH V4] mv643xx_eth: enable transmit time stamping.
  2011-06-20 20:55     ` David Miller
@ 2011-06-21  4:35       ` Richard Cochran
  2011-06-21 23:01         ` David Miller
  0 siblings, 1 reply; 17+ messages in thread
From: Richard Cochran @ 2011-06-21  4:35 UTC (permalink / raw)
  To: David Miller; +Cc: buytenh, netdev, eric.dumazet


This patch enables software (and phy device) transmit time stamping.
Compile tested only.

Cc: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
 drivers/net/mv643xx_eth.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 1b7d2c1..77dc6ab 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -840,6 +840,8 @@ no_csum:
 
 	__skb_queue_tail(&txq->tx_skb, skb);
 
+	skb_tx_timestamp(skb);
+
 	/* ensure all other descriptors are written before first cmd_sts */
 	wmb();
 	desc->cmd_sts = cmd_sts;
-- 
1.7.0.4


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

* Re: [PATCH V4] mv643xx_eth: enable transmit time stamping.
  2011-06-21  4:35       ` [PATCH V4] " Richard Cochran
@ 2011-06-21 23:01         ` David Miller
  0 siblings, 0 replies; 17+ messages in thread
From: David Miller @ 2011-06-21 23:01 UTC (permalink / raw)
  To: richardcochran; +Cc: buytenh, netdev, eric.dumazet

From: Richard Cochran <richardcochran@gmail.com>
Date: Tue, 21 Jun 2011 06:35:19 +0200

> This patch enables software (and phy device) transmit time stamping.
> Compile tested only.
> 
> Signed-off-by: Richard Cochran <richard.cochran@omicron.at>

Applied.

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

end of thread, other threads:[~2011-06-21 23:01 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-20  7:51 [PATCH V3 00/11] net: expand time stamping, batch #2 Richard Cochran
2011-06-20  7:51 ` [PATCH V3 01/11] net: export the receive time stamping hook for non-NAPI drivers Richard Cochran
2011-06-20  7:51 ` [PATCH V3 02/11] lib8390: enable transmit and receive time stamping Richard Cochran
2011-06-20  7:51 ` [PATCH V3 03/11] emaclite: " Richard Cochran
2011-06-20  7:51 ` [PATCH V3 04/11] ll_temac: " Richard Cochran
2011-06-20  7:51 ` [PATCH V3 05/11] fec_mpc52xx: " Richard Cochran
2011-06-20  7:51 ` [PATCH V3 06/11] macb: enable transmit " Richard Cochran
2011-06-20  7:51 ` [PATCH V3 07/11] fs_enet: " Richard Cochran
2011-06-20  7:51 ` [PATCH V3 08/11] smsc911x: " Richard Cochran
2011-06-20  7:51 ` [PATCH V3 09/11] pxa168_eth: " Richard Cochran
2011-06-20  7:51 ` [PATCH V3 10/11] mv643xx_eth: " Richard Cochran
2011-06-20 16:35   ` Lennert Buytenhek
2011-06-20 20:55     ` David Miller
2011-06-21  4:35       ` [PATCH V4] " Richard Cochran
2011-06-21 23:01         ` David Miller
2011-06-20  7:51 ` [PATCH V3 11/11] ucc_geth: " Richard Cochran
2011-06-20 20:57 ` [PATCH V3 00/11] net: expand time stamping, batch #2 David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).