Thread (16 messages) flat view 16 messages, 3 authors, 2011-06-12
STALE5532d

Revision v1 of 2 in this series.

Revisions (2)
  1. v1 current
  2. v3 [diff vs current]

[PATCH 01/10] net: introduce time stamping wrapper for netif_rx.

From: Richard Cochran <richardcochran@gmail.com>
Date: 2011-06-10 15:07:17
Subsystem: networking drivers, networking [general], the rest · Maintainers: Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds

This commit adds a variation on netif_rx() designed to allow non-NAPI
Ethernet MAC drivers to support hardware time stamping in PHY devices.
Adapting a given driver requires two small changes, namely replacing
netif_rx() with netif_rx_defer() and adding a call to skb_tx_timestamp()
in the transmission path.

Signed-off-by: Richard Cochran <redacted>
---
 include/linux/netdevice.h |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index ca333e7..9a56505 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2066,6 +2066,27 @@ extern void dev_kfree_skb_any(struct sk_buff *skb);
 #define HAVE_NETIF_RX 1
 extern int		netif_rx(struct sk_buff *skb);
 extern int		netif_rx_ni(struct sk_buff *skb);
+
+/**
+ * netif_rx_defer() - post buffer to the network code
+ * @skb: buffer to post
+ *
+ * This function receives a packet from a device driver and queues it
+ * for the upper (protocol) levels to process.  All non-NAPI Ethernet
+ * MAC drivers should use this instead of netif_rx() since this method
+ * allows hardware timestamping to occur within the PHY.
+ *
+ * return values:
+ * NET_RX_SUCCESS  (no congestion)
+ * NET_RX_DROP     (packet was dropped)
+ */
+static inline int netif_rx_defer(struct sk_buff *skb)
+{
+	if (skb_defer_rx_timestamp(skb))
+		return NET_RX_SUCCESS;
+	return netif_rx(skb);
+}
+
 #define HAVE_NETIF_RECEIVE_SKB 1
 extern int		netif_receive_skb(struct sk_buff *skb);
 extern gro_result_t	dev_gro_receive(struct napi_struct *napi,
-- 
1.7.0.4
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help