summaryrefslogtreecommitdiff
path: root/init/main.c
diff options
context:
space:
mode:
authorStefan Sørensen <stefan.sorensen@spectralink.com>2014-07-22 17:20:45 +0400
committerDavid S. Miller <davem@davemloft.net>2014-07-23 06:56:18 +0400
commit63502b8d01631bd41778a64c9f6b72ea409bf97b (patch)
tree157d94a877a55474fec8f4bd3bf01fa05203fbe4 /init/main.c
parent36763266bbe8a2e93a7639b99bac2fee2c42bc5b (diff)
downloadlinux-63502b8d01631bd41778a64c9f6b72ea409bf97b.tar.xz
dp83640: Fix receive timestamp race condition
When timestamping received packets, rx_timestamp_work may be scheduled before the timestamps is received from the hardware resulting in the packet beeing delivered without the timestamp. This is fixed by changing the receive timestamp path: On receiving a packet that need timestamping, the rxts list is traversed. If a match is found, packet+timestamp are delivered, otherwise the packet is added to a rx_queue. When a timestamp arrives rx_queue is traversed and if a matching packet is found, it is delivered with the timestamp. Otherwise the timestamp is added to the rxts list for matching with packets arriving later. In case the hardware drops a timestamp, a workqueue regularly checks the queue for old packets and delivers them without a timestamp. Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'init/main.c')
0 files changed, 0 insertions, 0 deletions