  	/*
  	 * Before updating sk_refcnt, we must commit prior changes to memory
 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index f2d116a..3d73659 100644
+index f2d116a..ee51e00 100644
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
 @@ -84,6 +84,10 @@

 
 	switch (cmd) {
 	case SIOCOUTQ:
@@ -1999,9 +2068,38 @@ static int packet_ioctl(struct socket *sock, unsigned int cmd,
 		return put_user(amount, (int __user *)arg);
 	}
 	case SIOCGSTAMP:

 
 /*
diff --git a/net/core/dev.c b/net/core/dev.c
index fe10551..1e48a4b 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1369,6 +1369,11 @@ static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev)
 	net_timestamp(skb);
 #endif
 
+#ifdef CONFIG_FFCLOCK
+	/* Update the counter */
+	skb->ffclock_stamp = read_ffcounter();
+#endif /* CONFIG_FFCLOCK */
+
 	rcu_read_lock();
 	list_for_each_entry_rcu(ptype, &ptype_all, list) {
 		/* Never send packets back to the socket
@@ -2002,6 +2007,11 @@ int netif_rx(struct sk_buff *skb)
 	if (netpoll_rx(skb))
 		return NET_RX_DROP;
 
+#ifdef CONFIG_FFCLOCK
+	/* Update the counter */
+	skb->ffclock_stamp = read_ffcounter();
+#endif
+
 	if (!skb->tstamp.tv64)
 		net_timestamp(skb);
 
@@ -2289,6 +2299,11 @@ int netif_receive_skb(struct sk_buff *skb)
 	int ret = NET_RX_DROP;
 	__be16 type;
 
+#ifdef CONFIG_FFCLOCK
+	/* Update the counter */
+	skb->ffclock_stamp = read_ffcounter();
+#endif /* CONFIG_FFCLOCK */
+
 	if (!skb->tstamp.tv64)
