summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsmh <smh@FreeBSD.org>2016-01-29 09:16:08 +0000
committersmh <smh@FreeBSD.org>2016-01-29 09:16:08 +0000
commit21ca5dcc62369da75a40c997c67822d570aad5a6 (patch)
tree123e21875b6f00c3b2a3bf685888ae933b2b9541
parent7bb73c592a68b3ee7029bccf147c65d109d7f069 (diff)
downloadFreeBSD-src-21ca5dcc62369da75a40c997c67822d570aad5a6.zip
FreeBSD-src-21ca5dcc62369da75a40c997c67822d570aad5a6.tar.gz
MFC r294578:
Fix ix advertise value after media change Approved by: re (gjb) Sponsored by: Multiplay
-rw-r--r--sys/dev/ixgbe/if_ix.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c
index 3ade341..3c6caf7 100644
--- a/sys/dev/ixgbe/if_ix.c
+++ b/sys/dev/ixgbe/if_ix.c
@@ -1855,10 +1855,16 @@ ixgbe_media_change(struct ifnet * ifp)
hw->mac.autotry_restart = TRUE;
hw->mac.ops.setup_link(hw, speed, TRUE);
- adapter->advertise =
- ((speed & IXGBE_LINK_SPEED_10GB_FULL) << 2) |
- ((speed & IXGBE_LINK_SPEED_1GB_FULL) << 1) |
- ((speed & IXGBE_LINK_SPEED_100_FULL) << 0);
+ if (IFM_SUBTYPE(ifm->ifm_media) == IFM_AUTO) {
+ adapter->advertise = 0;
+ } else {
+ if ((speed & IXGBE_LINK_SPEED_10GB_FULL) != 0)
+ adapter->advertise |= 1 << 2;
+ if ((speed & IXGBE_LINK_SPEED_1GB_FULL) != 0)
+ adapter->advertise |= 1 << 1;
+ if ((speed & IXGBE_LINK_SPEED_100_FULL) != 0)
+ adapter->advertise |= 1 << 0;
+ }
return (0);
OpenPOWER on IntegriCloud