mirror_ubuntu-kernels/drivers/net/dsa/ocelot
Vladimir Oltean a4bb481aeb net: dsa: felix: access QSYS_TAG_CONFIG under tas_lock in vsc9959_sched_speed_set
The read-modify-write of QSYS_TAG_CONFIG from vsc9959_sched_speed_set()
runs unlocked with respect to the other functions that access it, which
are vsc9959_tas_guard_bands_update(), vsc9959_qos_port_tas_set() and
vsc9959_tas_clock_adjust(). All the others are under ocelot->tas_lock,
so move the vsc9959_sched_speed_set() access under that lock as well, to
resolve the concurrency.

Fixes: 55a515b1f5 ("net: dsa: felix: drop oversized frames with tc-taprio instead of hanging the port")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-09-07 13:44:04 +01:00
..
felix_vsc9959.c net: dsa: felix: access QSYS_TAG_CONFIG under tas_lock in vsc9959_sched_speed_set 2022-09-07 13:44:04 +01:00
felix.c net: dsa: felix: suppress non-changes to the tagging protocol 2022-08-09 12:13:03 -07:00
felix.h net: dsa: felix: drop oversized frames with tc-taprio instead of hanging the port 2022-06-30 21:18:16 -07:00
Kconfig net: dsa: felix: build as module when tc-taprio is module 2022-07-05 17:50:38 -07:00
Makefile net: dsa: seville: build as separate module 2020-09-18 17:52:51 -07:00
seville_vsc9953.c net: mscc: ocelot: keep ocelot_stat_layout by reg address, not offset 2022-08-17 21:58:32 -07:00