Vedang Patel
1e08511d5d
igb: clear out skb->tstamp after reading the txtime
...
If a packet which is utilizing the launchtime feature (via SO_TXTIME socket
option) also requests the hardware transmit timestamp, the hardware
timestamp is not delivered to the userspace. This is because the value in
skb->tstamp is mistaken as the software timestamp.
Applications, like ptp4l, request a hardware timestamp by setting the
SOF_TIMESTAMPING_TX_HARDWARE socket option. Whenever a new timestamp is
detected by the driver (this work is done in igb_ptp_tx_work() which calls
igb_ptp_tx_hwtstamps() in igb_ptp.c[1]), it will queue the timestamp in the
ERR_QUEUE for the userspace to read. When the userspace is ready, it will
issue a recvmsg() call to collect this timestamp. The problem is in this
recvmsg() call. If the skb->tstamp is not cleared out, it will be
interpreted as a software timestamp and the hardware tx timestamp will not
be successfully sent to the userspace. Look at skb_is_swtx_tstamp() and the
callee function __sock_recv_timestamp() in net/socket.c for more details.
Signed-off-by: Vedang Patel <vedang.patel@intel.com >
Tested-by: Aaron Brown <aaron.f.brown@intel.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2019-06-28 14:45:33 -07:00
..
2019-05-24 17:36:47 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-13 10:35:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:41 -07:00
2019-06-20 15:06:24 +02:00
2019-06-13 17:34:56 -10:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:06 +02:00
2019-06-21 09:58:42 -07:00
2019-05-21 11:28:39 +02:00
2019-06-19 17:11:22 +02:00
2019-06-28 08:50:09 +08:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:35 -07:00
2019-06-17 22:28:29 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-13 17:34:56 -10:00
2019-05-24 17:27:11 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:07 +02:00
2019-06-05 17:37:17 +02:00
2019-05-30 11:29:53 -07:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:35 -07:00
2019-06-21 09:58:42 -07:00
2019-05-24 17:36:45 +02:00
2019-06-08 12:52:42 -07:00
2019-06-19 17:09:11 +02:00
2019-05-21 10:50:46 +02:00
2019-06-19 17:09:55 +02:00
2019-06-21 11:03:33 -07:00
2019-06-28 08:39:18 +08:00
2019-06-05 17:37:07 +02:00
2019-06-05 17:37:05 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-06-22 08:59:24 -04:00
2019-05-21 10:50:46 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:06 +02:00
2019-06-21 10:20:19 -07:00
2019-06-22 08:59:24 -04:00
2019-06-21 09:58:42 -07:00
2019-05-21 10:50:46 +02:00
2019-06-22 14:08:47 -07:00
2019-06-05 17:37:17 +02:00
2019-06-21 09:58:42 -07:00
2019-06-07 11:00:14 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:14 +02:00
2019-06-19 17:09:08 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:17 +02:00
2019-06-28 08:48:21 +08:00
2019-06-22 08:59:24 -04:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-06-25 03:41:03 +08:00
2019-06-21 10:18:16 -07:00
2019-06-21 09:58:42 -07:00
2019-06-24 21:23:55 +08:00
2019-06-28 14:45:33 -07:00
2019-06-05 17:37:15 +02:00
2019-06-05 17:36:37 +02:00
2019-05-21 10:50:46 +02:00
2019-06-13 17:34:56 -10:00
2019-06-07 14:04:28 -06:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:16 +02:00
2019-06-19 17:09:55 +02:00
2019-06-08 12:52:42 -07:00
2019-06-19 17:09:55 +02:00
2019-06-27 21:06:39 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:25:19 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:04 +02:00
2019-05-24 17:36:45 +02:00
2019-05-30 11:26:39 -07:00
2019-06-15 13:43:06 -07:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:37 -07:00
2019-06-07 23:21:39 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-27 10:18:24 -07:00
2019-05-24 17:36:45 +02:00
2019-06-27 21:06:39 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-06-21 09:58:42 -07:00
2019-06-10 18:07:39 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:37 +02:00
2019-06-25 08:05:34 +03:00
2019-06-22 08:59:24 -04:00
2019-06-22 08:59:24 -04:00
2019-05-21 10:50:46 +02:00
2019-06-05 17:36:37 +02:00
2019-06-19 17:09:55 +02:00
2019-06-14 14:25:43 +03:00
2019-05-24 17:08:18 +02:00
2019-06-19 17:09:55 +02:00
2019-06-20 11:56:35 +02:00
2019-06-19 17:09:07 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-05-27 11:08:22 -04:00
2019-05-21 10:50:46 +02:00
2019-05-24 17:39:00 +02:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00