mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
Most errors that can occur in sja1105_static_config_reload() are fatal
(example: fail to communicate with hardware), but not all are.
For example, sja1105_static_config_upload() -> kcalloc() may fail, and
if that happens, we have called phylink_replay_link_begin() but never
phylink_replay_link_end().
Under that circumstance, all port phylink instances are left in a state
where the resolver is stopped with the PHYLINK_DISABLE_REPLAY bit set.
We have effectively disabled link management with no way to recover from
this condition.
Avoid that situation by ensuring phylink_replay_link_begin() is always
paired with phylink_replay_link_end(), regardless of whether we faced
any errors during switch reset, configuration reload and general state
reload.
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| sja1105_clocking.c | ||
| sja1105_devlink.c | ||
| sja1105_dynamic_config.c | ||
| sja1105_dynamic_config.h | ||
| sja1105_ethtool.c | ||
| sja1105_flower.c | ||
| sja1105_main.c | ||
| sja1105_mdio.c | ||
| sja1105_ptp.c | ||
| sja1105_ptp.h | ||
| sja1105_spi.c | ||
| sja1105_static_config.c | ||
| sja1105_static_config.h | ||
| sja1105_tas.c | ||
| sja1105_tas.h | ||
| sja1105_vl.c | ||
| sja1105_vl.h | ||
| sja1105.h | ||