linux-stable/drivers/net/dsa
Richard Cochran 2290482379 net: dsa: mv88e6xxx: Fix receive time stamp race condition.
The DSA stack passes received PTP frames to this driver via
mv88e6xxx_port_rxtstamp() for deferred delivery.  The driver then
queues the frame and kicks the worker thread.  The work callback reads
out the latched receive time stamp and then works through the queue,
delivering any non-matching frames without a time stamp.

If a new frame arrives after the worker thread has read out the time
stamp register but enters the queue before the worker finishes
processing the queue, that frame will be delivered without a time
stamp.

This patch fixes the race by moving the queue onto a list on the stack
before reading out the latched time stamp value.

Fixes: c6fe0ad2c3 ("net: dsa: mv88e6xxx: add rx/tx timestamping support")
Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-04-12 22:05:58 -04:00
..
b53 net: dsa: b53: Fix sparse warnings in b53_mmap.c 2018-04-04 11:15:27 -04:00
microchip dsa: Pass the port to get_sset_count() 2018-03-04 13:34:18 -05:00
mv88e6xxx net: dsa: mv88e6xxx: Fix receive time stamp race condition. 2018-04-12 22:05:58 -04:00
Kconfig net: dsa: Allow compiling out legacy support 2017-12-07 14:14:54 -05:00
Makefile net: dsa: Fix functional dsa-loop dependency on FIXED_PHY 2018-03-22 13:02:47 -04:00
bcm_sf2.c net: dsa: bcm_sf2: Update compatible string for 7278B0 2017-12-15 10:57:04 -05:00
bcm_sf2.h net: dsa: bcm_sf2: Add support for IPv6 CFP rules 2017-10-23 03:06:47 +01:00
bcm_sf2_cfp.c net: dsa: bcm_sf2: Set correct CHAIN_ID and slice number mask 2017-11-30 14:21:35 -05:00
bcm_sf2_regs.h net: dsa: bcm_sf2: Allow matching arbitrary IPv4 mask lengths 2017-10-23 03:06:47 +01:00
dsa_loop.c dsa: Pass the port to get_sset_count() 2018-03-04 13:34:18 -05:00
dsa_loop.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dsa_loop_bdinfo.c net: dsa: Mock-up driver 2017-04-01 12:39:32 -07:00
lan9303-core.c dsa: Pass the port to get_sset_count() 2018-03-04 13:34:18 -05:00
lan9303.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
lan9303_i2c.c net: dsa: lan9303: Adjust indenting 2017-11-08 13:29:06 +09:00
lan9303_mdio.c net: dsa: lan9303: Adjust indenting 2017-11-08 13:29:06 +09:00
mt7530.c net: dsa: mt7530: Use NULL instead of plain integer 2018-04-04 11:15:49 -04:00
mt7530.h net: dsa: mediatek: add VLAN support for MT7530 2017-12-15 10:31:54 -05:00
mv88e6060.c net: dsa: Pass a port to get_tag_protocol() 2017-11-13 10:34:54 +09:00
mv88e6060.h net: dsa: Keep the mii bus and address in the private structure 2016-04-13 18:15:23 -04:00
qca8k.c dsa: Pass the port to get_sset_count() 2018-03-04 13:34:18 -05:00
qca8k.h net: dsa: call phy_init_eee in DSA layer 2017-08-01 20:09:10 -07:00