 +	/* Pass the raw timestamp specific to the FFCLOCK to the socket */
 +	sk->sk_ffclock_stamp = skb->ffclock_stamp;
 +#endif
-+
  	skb->protocol = proto;
  	skb->dev = dev;
  	skb->priority = sk->sk_priority;
-@@ -1472,6 +1542,10 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
+@@ -1472,6 +1534,10 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
  	if (err)
  		goto out_free;
  

 /*
  * This structure really needs to be cleaned up.
  * Most of it is for TCP, and not used by any of
@@ -301,6 +305,11 @@ struct sock {
   	int			(*sk_backlog_rcv)(struct sock *sk,
 						  struct sk_buff *skb);  
 	void                    (*sk_destruct)(struct sock *sk);

+	/* Copy the vcount stamp just before where the mac/sll header wil be */
+	ffclock_off -= sizeof(ffcounter_t);
+	memcpy(h.raw + ffclock_off, &(skb->ffclock_stamp), sizeof(ffcounter_t));
+#endif /* CONFIG_CONFIG */
+
 	__packet_set_status(po, h.raw, status);
 	smp_mb();
 	{
@@ -1119,6 +1177,10 @@ static int packet_snd(struct socket *sock,
 	if (err)
 		goto out_free;
 
