  	skb->protocol = proto;
  	skb->dev = dev;
  	skb->priority = sk->sk_priority;
-@@ -1472,6 +1553,14 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
+@@ -1472,6 +1554,14 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
  	if (err)
  		goto out_free;
  

 		macoff = netoff - maclen;
 	}
 
@@ -741,6 +768,23 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
 
 	skb_copy_bits(skb, 0, h.raw + macoff, snaplen);
 

+		tsmode = *((long *)arg);
+
+		switch (tsmode) {
+		/* case FFCLOCK_TSMODE_FAIRCOMPARE: */
+		case FFCLOCK_TSMODE_SYSCLOCK:
+		case FFCLOCK_TSMODE_FFCLOCK:
+			sk->sk_ffclock_tsmode = tsmode;
