diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2023-07-05 12:44:20 +0200 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-07-07 04:10:22 +0200 |
commit | 009d30f1a77795014f151ba317fcbfc2f17153c6 (patch) | |
tree | 457ca561c323ab36e13b4394bab66ad0e440621c /include | |
parent | Merge tag 'nf-23-07-06' of git://git.kernel.org/pub/scm/linux/kernel/git/netf... (diff) | |
download | linux-009d30f1a77795014f151ba317fcbfc2f17153c6.tar.xz linux-009d30f1a77795014f151ba317fcbfc2f17153c6.zip |
net: mscc: ocelot: extend ocelot->fwd_domain_lock to cover ocelot->tas_lock
In a future commit we will have to call vsc9959_tas_guard_bands_update()
from ocelot_port_update_active_preemptible_tcs(), and that will be
impossible due to the AB/BA locking dependencies between
ocelot->tas_lock and ocelot->fwd_domain_lock.
Just like we did in commit 3ff468ef987e ("net: mscc: ocelot: remove
struct ocelot_mm_state :: lock"), the only solution is to expand the
scope of ocelot->fwd_domain_lock for it to also serialize changes made
to the Time-Aware Shaper, because those will have to result in a
recalculation of cut-through TCs, which is something that depends on the
forwarding domain.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Message-ID: <20230705104422.49025-2-vladimir.oltean@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/soc/mscc/ocelot.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h index 22aae505c813..eb5f8914a66c 100644 --- a/include/soc/mscc/ocelot.h +++ b/include/soc/mscc/ocelot.h @@ -863,12 +863,12 @@ struct ocelot { struct mutex stat_view_lock; /* Lock for serializing access to the MAC table */ struct mutex mact_lock; - /* Lock for serializing forwarding domain changes */ + /* Lock for serializing forwarding domain changes, including the + * configuration of the Time-Aware Shaper, MAC Merge layer and + * cut-through forwarding, on which it depends + */ struct mutex fwd_domain_lock; - /* Lock for serializing Time-Aware Shaper changes */ - struct mutex tas_lock; - struct workqueue_struct *owq; u8 ptp:1; |