1
0
Fork 0
alistair23-linux/drivers/net/ethernet/mellanox/mlxsw
Ido Schimmel 78b9c4a8e3 mlxsw: core: Use variable timeout for EMAD retries
[ Upstream commit 1f492eab67 ]

The driver sends Ethernet Management Datagram (EMAD) packets to the
device for configuration purposes and waits for up to 200ms for a reply.
A request is retried up to 5 times.

When the system is under heavy load, replies are not always processed in
time and EMAD transactions fail.

Make the process more robust to such delays by using exponential
backoff. First wait for up to 200ms, then retransmit and wait for up to
400ms and so on.

Fixes: caf7297e7a ("mlxsw: core: Introduce support for asynchronous EMAD register access")
Reported-by: Denis Yulevich <denisyu@nvidia.com>
Tested-by: Denis Yulevich <denisyu@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-11-24 13:28:56 +01:00
..
Kconfig mlxsw: spectrum: Extend to support Spectrum-3 ASIC 2019-08-08 22:27:09 -07:00
Makefile mlxsw: spectrum: Add devlink-trap support 2019-08-21 12:58:39 -07:00
cmd.h mlxsw: cmd: Free running clock PCI BAR and offsets via query firmware 2019-06-13 22:34:55 -07:00
core.c mlxsw: core: Use variable timeout for EMAD retries 2020-11-24 13:28:56 +01:00
core.h mlxsw: spectrum: Register CPU port with devlink 2019-09-16 22:07:59 +02:00
core_acl_flex_actions.c mlxsw: Fix some IS_ERR() vs NULL bugs 2020-04-29 16:33:07 +02:00
core_acl_flex_actions.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
core_acl_flex_keys.c mlxsw: spectrum_acl: Avoid size check for RX_ACL_SYSTEM_PORT element 2019-06-19 10:09:22 -04:00
core_acl_flex_keys.h mlxsw: spectrum_acl: Fix SRC_SYS_PORT element size 2019-06-19 10:09:22 -04:00
core_env.c mlxsw: core: Reduce buffer size in transactions for SFP modules temperature readout 2019-05-30 12:59:46 -07:00
core_env.h mlxsw: core: Move ethtool module callbacks to a common location 2019-03-03 22:23:00 -08:00
core_hwmon.c mlxsw: core: Add support for negative temperature readout 2019-06-24 08:15:42 -07:00
core_thermal.c mlxsw: core: Use different get_trend() callbacks for different thermal zones 2020-06-17 16:40:19 +02:00
emad.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
i2c.c mlxsw: i2c: Allow flexible setting of I2C transactions size 2019-05-30 12:59:46 -07:00
i2c.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
ib.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
item.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
minimal.c mlxsw: minimal: Fix an error handling path in 'mlxsw_m_port_create()' 2020-02-01 09:34:39 +00:00
pci.c mlxsw: pci: Fix use-after-free in case of failed devlink reload 2020-07-16 08:16:42 +02:00
pci.h mlxsw: spectrum: Extend to support Spectrum-3 ASIC 2019-08-08 22:27:09 -07:00
pci_hw.h mlxsw: pci: Query free running clock PCI BAR and offsets 2019-06-13 22:34:55 -07:00
port.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
reg.h mlxsw: spectrum: Use dedicated policer for VRRP packets 2020-01-04 19:18:57 +01:00
resources.h mlxsw: resources: Add local_ports_in_{1x, 2x} 2019-05-04 01:21:36 -04:00
spectrum.c mlxsw: spectrum: Fix use-after-free of split/unsplit/type_set in case reload fails 2020-06-03 08:21:07 +02:00
spectrum.h mlxsw: spectrum_ptp: Add counters for GC events 2019-08-28 18:24:04 -07:00
spectrum1_acl_tcam.c mlxsw: spectrum_acl: Pass hints priv all the way to ERP code 2019-02-08 15:02:50 -08:00
spectrum1_kvdl.c mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum1_mr_tcam.c mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum2_acl_tcam.c mlxsw: Fix some IS_ERR() vs NULL bugs 2020-04-29 16:33:07 +02:00
spectrum2_kvdl.c mlxsw: spectrum: Add a new type of KVD linear record 2018-10-11 10:08:22 -07:00
spectrum2_mr_tcam.c mlxsw: spectrum_router: Add Multicast routing support for Spectrum-2 2018-12-11 23:01:33 -08:00
spectrum_acl.c mlxsw: Fix some IS_ERR() vs NULL bugs 2020-04-29 16:33:07 +02:00
spectrum_acl_atcam.c mlxsw: spectrum_acl: Pass hints priv all the way to ERP code 2019-02-08 15:02:50 -08:00
spectrum_acl_bloom_filter.c mlxsw: spectrum_acl: Introduce mutex to guard Bloom Filter updates 2019-02-24 20:25:29 -08:00
spectrum_acl_ctcam.c mlxsw: spectrum_acl: Remove unnecessary arg on action_replace call path 2019-01-28 10:43:15 -08:00
spectrum_acl_erp.c mlxsw: spectrum_acl: Avoid warning after identical rules insertion 2019-05-30 12:30:47 -07:00
spectrum_acl_flex_actions.c mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_acl_flex_actions.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_acl_flex_keys.c mlxsw: spectrum_acl: Fix SRC_SYS_PORT element size 2019-06-19 10:09:22 -04:00
spectrum_acl_tcam.c mlxsw: spectrum_acl: Fix mlxsw_sp_acl_tcam_group_add()'s error path 2020-10-14 10:33:03 +02:00
spectrum_acl_tcam.h mlxsw: spectrum_acl: Don't take rtnl lock during vregion_rehash_intrvl_set() 2019-02-24 20:25:29 -08:00
spectrum_buffers.c mlxsw: spectrum_buffers: Add the ability to query the CPU port's shared buffer 2019-09-16 22:07:59 +02:00
spectrum_cnt.c mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_cnt.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_dcb.c mlxsw: spectrum_dcb: Configure DSCP map as the last rule is removed 2019-07-17 15:19:46 -07:00
spectrum_dpipe.c mlxsw: spectrum_dpipe: Add missing error path 2020-02-24 08:37:03 +01:00
spectrum_dpipe.h mlxsw: spectrum: Assume CONFIG_NET_DEVLINK is always enabled 2019-04-19 15:03:55 -07:00
spectrum_fid.c mlxsw: spectrum: Do not process learned records with a dummy FID 2019-07-17 15:19:46 -07:00
spectrum_flower.c mlxsw: spectrum_flower: Do not stop at FLOW_ACTION_VLAN_MANGLE 2020-04-13 10:48:05 +02:00
spectrum_ipip.c mlxsw: spectrum_router: Update tunnel decap properties 2019-01-20 11:12:58 -08:00
spectrum_ipip.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_kvdl.c mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_mr.c mlxsw: spectrum_mr: Fix list iteration in error path 2020-04-01 11:01:32 +02:00
spectrum_mr.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_mr_tcam.c mlxsw: Fix some IS_ERR() vs NULL bugs 2020-04-29 16:33:07 +02:00
spectrum_mr_tcam.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_nve.c mlxsw: spectrum_ptp: Increase parsing depth when PTP is enabled 2019-07-29 13:55:05 -07:00
spectrum_nve.h mlxsw: spectrum_ptp: Increase parsing depth when PTP is enabled 2019-07-29 13:55:05 -07:00
spectrum_nve_vxlan.c mlxsw: spectrum_ptp: Increase parsing depth when PTP is enabled 2019-07-29 13:55:05 -07:00
spectrum_ptp.c mlxsw: spectrum_ptp: Add counters for GC events 2019-08-28 18:24:04 -07:00
spectrum_ptp.h mlxsw: spectrum_ptp: Add counters for GC events 2019-08-28 18:24:04 -07:00
spectrum_qdisc.c mlxsw: spectrum_qdisc: Include MC TCs in Qdisc counters 2020-01-23 08:22:53 +01:00
spectrum_router.c mlxsw: spectrum_router: Remove inappropriate usage of WARN_ON() 2020-07-16 08:16:41 +02:00
spectrum_router.h mlxsw: spectrum_router: Update tunnel decap properties 2019-01-20 11:12:58 -08:00
spectrum_span.c ipv4: Add support to rtable for ipv6 gateway 2019-04-08 15:22:40 -07:00
spectrum_span.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_switchdev.c mlxsw: spectrum: Do not process learned records with a dummy FID 2019-07-17 15:19:46 -07:00
spectrum_switchdev.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00
spectrum_trap.c mlxsw: spectrum_trap: Push Ethernet header before reporting trap 2019-10-18 10:15:09 -07:00
switchib.c mlxsw: switch_ib: Pass valid HW id down to mlxsw_core_port_init() 2019-04-04 17:42:36 -07:00
switchx2.c mlxsw: spectrum: Fix use-after-free of split/unsplit/type_set in case reload fails 2020-06-03 08:21:07 +02:00
trap.h mlxsw: Add layer 2 discard trap IDs 2019-08-21 12:58:39 -07:00
txheader.h mlxsw: Replace license text with SPDX identifiers and adjust copyrights 2018-08-09 10:36:10 -07:00