| From foo@baz Fri Mar 16 15:43:17 CET 2018 |
| From: Michael Chan <michael.chan@broadcom.com> |
| Date: Wed, 6 Dec 2017 17:31:22 -0500 |
| Subject: bnxt_en: Don't print "Link speed -1 no longer supported" messages. |
| |
| From: Michael Chan <michael.chan@broadcom.com> |
| |
| |
| [ Upstream commit a8168b6cee6e9334dfebb4b9108e8d73794f6088 ] |
| |
| On some dual port NICs, the 2 ports have to be configured with compatible |
| link speeds. Under some conditions, a port's configured speed may no |
| longer be supported. The firmware will send a message to the driver |
| when this happens. |
| |
| Improve this logic that prints out the warning by only printing it if |
| we can determine the link speed that is no longer supported. If the |
| speed is unknown or it is in autoneg mode, skip the warning message. |
| |
| Reported-by: Thomas Bogendoerfer <tbogendoerfer@suse.de> |
| Signed-off-by: Michael Chan <michael.chan@broadcom.com> |
| Tested-by: Thomas Bogendoerfer <tbogendoerfer@suse.de> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/broadcom/bnxt/bnxt.c | 10 +++++++--- |
| 1 file changed, 7 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c |
| +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c |
| @@ -1698,12 +1698,16 @@ static int bnxt_async_event_process(stru |
| |
| if (BNXT_VF(bp)) |
| goto async_event_process_exit; |
| - if (data1 & 0x20000) { |
| + |
| + /* print unsupported speed warning in forced speed mode only */ |
| + if (!(link_info->autoneg & BNXT_AUTONEG_SPEED) && |
| + (data1 & 0x20000)) { |
| u16 fw_speed = link_info->force_link_speed; |
| u32 speed = bnxt_fw_to_ethtool_speed(fw_speed); |
| |
| - netdev_warn(bp->dev, "Link speed %d no longer supported\n", |
| - speed); |
| + if (speed != SPEED_UNKNOWN) |
| + netdev_warn(bp->dev, "Link speed %d no longer supported\n", |
| + speed); |
| } |
| set_bit(BNXT_LINK_SPEED_CHNG_SP_EVENT, &bp->sp_event); |
| /* fall thru */ |