[RFC PATCH 06/13] workaround: detect time stamp when command flags are expected

Patrick Ohly
2008-11-11T14:57:07Z

This happens when IP_MULTICAST_LOOP is on. Apparently the time
stamped packet goes through the loop device's start_hard_xmit?!
TODO: find a clean solution.

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
---
net/core/skbuff.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 7d714b8..7d9f1dd 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -2574,6 +2574,13 @@ void skb_hwtstamp_tx(struct sk_buff *orig_skb,
struct sk_buff *skb;
int err = -ENOMEM;

+ /* sanity check: extra bits set => might be a real time stamp */
+ if (orig_skb->tstamp.tv64 & ~(SKB_TSTAMP_TX_HARDWARE|SKB_TSTAMP_TX_HARDWARE_IN_PROGRESS|SKB_TSTAMP_TX_SOFTWARE)) {
+ printk(KERN_DEBUG
+ "skb_hwtstamp_tx: invalid command flags\n");
+ return;
+ }
+
if (!sk)
return;

--
1.6.0.4