From: Marta Plantykow <[email protected]> The 5-second SWFW semaphore timeout added for X550 (ixgbe_mac_X550) also applies to X550EM devices (e.g. X550EM_a, X550EM_x) since they share the same FW and the same SR-dump-driven worst-case latency of ~3.2 s / module-update latency of ~4.5 s. Change the mac-type comparison from '== ixgbe_mac_X550' to a range check that covers all three X550-family enum values (ixgbe_mac_X550, ixgbe_mac_X550EM_x, ixgbe_mac_x550em_a) without inadvertently capturing later entries such as ixgbe_mac_e610 which share the same swfw-sync function but have not been validated against this exact timing requirement.
Signed-off-by: Marta Plantykow <[email protected]> Signed-off-by: Aleksandr Loktionov <[email protected]> --- drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c index 85047ef..298958d 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c @@ -577,7 +577,8 @@ int ixgbe_acquire_swfw_sync_X540(struct ixgbe_hw *hw, u32 mask) swmask |= swi2c_mask; fwmask |= swi2c_mask << 2; - if (hw->mac.type == ixgbe_mac_X550) + if (hw->mac.type >= ixgbe_mac_X550 && + hw->mac.type <= ixgbe_mac_x550em_a) timeout = 1000; for (i = 0; i < timeout; i++) { -- 2.52.0
