Message ID | a9c79dd7d996a352b37ea4e650b235d0c8b996d1.1278307573.git.richard.cochran@omicron.at |
---|---|
State | Rejected, archived |
Delegated to: | David Miller |
Headers | show |
From: Richard Cochran <richardcochran@gmail.com> Date: Mon, 5 Jul 2010 07:31:07 +0200 > This patch adds hooks for transmit and receive time stamps. The > transmit hook allows a software fallback for transmit time stamps, > for MACs lacking time stamping hardware. The receive hook does not yet > have any effect, but it prepares the way for hardware time stamping > in PHY devices. Using the hooks will still require adding two inline > function calls to each MAC driver. > > Signed-off-by: Richard Cochran <richard.cochran@omicron.at> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: David Miller <davem@davemloft.net> Date: Mon, 05 Jul 2010 19:03:01 -0700 (PDT) > From: Richard Cochran <richardcochran@gmail.com> > Date: Mon, 5 Jul 2010 07:31:07 +0200 > >> This patch adds hooks for transmit and receive time stamps. The >> transmit hook allows a software fallback for transmit time stamps, >> for MACs lacking time stamping hardware. The receive hook does not yet >> have any effect, but it prepares the way for hardware time stamping >> in PHY devices. Using the hooks will still require adding two inline >> function calls to each MAC driver. >> >> Signed-off-by: Richard Cochran <richard.cochran@omicron.at> > > Applied. Actually, this breaks the build. There are drivers that never saw phylib.h included in them, which use internal static functions named "phy_read()" and such which match global interfaces defined in phylib.h drivers/net/tulip/dmfe.c:334:12: error: conflicting types for 'phy_read' include/linux/phy.h:437:19: note: previous definition of 'phy_read' was here drivers/net/tulip/dmfe.c:335:13: error: conflicting types for 'phy_write' include/linux/phy.h:452:19: note: previous definition of 'phy_write' was here You're going to need to resolve this issue first, then make sure at a minimum that an "allmodconfig" build fully passes with an unconditional include of phylib.h in skbuff.h I've reverted all of your patches. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index ac74ee0..75323fe 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -29,6 +29,7 @@ #include <linux/rcupdate.h> #include <linux/dmaengine.h> #include <linux/hrtimer.h> +#include <linux/phy.h> /* Don't change this without changing skb_csum_unnecessary! */ #define CHECKSUM_NONE 0 @@ -1947,6 +1948,41 @@ static inline ktime_t net_invalid_timestamp(void) extern void skb_tstamp_tx(struct sk_buff *orig_skb, struct skb_shared_hwtstamps *hwtstamps); +static inline void sw_tx_timestamp(struct sk_buff *skb) +{ + union skb_shared_tx *shtx = skb_tx(skb); + if (shtx->software && !shtx->in_progress) + skb_tstamp_tx(skb, NULL); +} + +/** + * skb_tx_timestamp() - Driver hook for transmit timestamping + * + * Ethernet MAC Drivers should call this function in their hard_xmit() + * function as soon as possible after giving the sk_buff to the MAC + * hardware, but before freeing the sk_buff. + * + * @phy: The port's phy_device. Pass NULL if this is not available. + * @skb: A socket buffer. + */ +static inline void skb_tx_timestamp(struct phy_device *phy, struct sk_buff *skb) +{ + sw_tx_timestamp(skb); +} + +/** + * skb_rx_timestamp() - Driver hook for receive timestamping + * + * Ethernet MAC Drivers should call this function in their NAPI poll() + * function immediately before calling eth_type_trans(). + * + * @phy: The port's phy_device. Pass NULL if this is not available. + * @skb: A socket buffer. + */ +static inline void skb_rx_timestamp(struct phy_device *phy, struct sk_buff *skb) +{ +} + extern __sum16 __skb_checksum_complete_head(struct sk_buff *skb, int len); extern __sum16 __skb_checksum_complete(struct sk_buff *skb);
This patch adds hooks for transmit and receive time stamps. The transmit hook allows a software fallback for transmit time stamps, for MACs lacking time stamping hardware. The receive hook does not yet have any effect, but it prepares the way for hardware time stamping in PHY devices. Using the hooks will still require adding two inline function calls to each MAC driver. Signed-off-by: Richard Cochran <richard.cochran@omicron.at> --- include/linux/skbuff.h | 36 ++++++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+), 0 deletions(-)