Module Name: src
Committed By: msaitoh
Date: Wed Dec 28 07:05:11 UTC 2016
Modified Files:
src/sys/dev/pci/ixgbe: ixgbe.c
Log Message:
Allow 0 as the defalut of hw.ixgN.advertise_speed sysctl.
To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 src/sys/dev/pci/ixgbe/ixgbe.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/ixgbe/ixgbe.c
diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.56 src/sys/dev/pci/ixgbe/ixgbe.c:1.57
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.56 Tue Dec 27 10:01:39 2016
+++ src/sys/dev/pci/ixgbe/ixgbe.c Wed Dec 28 07:05:11 2016
@@ -59,7 +59,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
/*$FreeBSD: head/sys/dev/ixgbe/if_ix.c 302384 2016-07-07 03:39:18Z sbruno $*/
-/*$NetBSD: ixgbe.c,v 1.56 2016/12/27 10:01:39 msaitoh Exp $*/
+/*$NetBSD: ixgbe.c,v 1.57 2016/12/28 07:05:11 msaitoh Exp $*/
#include "opt_inet.h"
#include "opt_inet6.h"
@@ -4998,6 +4998,7 @@ ixgbe_set_flowcntl(struct adapter *adapt
/*
** Control advertised link speed:
** Flags:
+** 0x0 - Default (all capable link speed)
** 0x1 - advertise 100 Mb
** 0x2 - advertise 1G
** 0x4 - advertise 10G
@@ -5044,26 +5045,26 @@ ixgbe_set_advertise(struct adapter *adap
return (EINVAL);
}
- if (advertise < 0x1 || advertise > 0x7) {
+ if (advertise < 0x0 || advertise > 0x7) {
device_printf(dev,
- "Invalid advertised speed; valid modes are 0x1 through 0x7\n");
- return (EINVAL);
- }
-
- if ((advertise & 0x1)
- && (hw->mac.type != ixgbe_mac_X540)
- && (hw->mac.type != ixgbe_mac_X550)) {
- device_printf(dev, "Set Advertise: 100Mb on X540/X550 only\n");
+ "Invalid advertised speed; valid modes are 0x0 through 0x7\n");
return (EINVAL);
}
/* Set new value and report new advertised mode */
speed = 0;
- if (advertise & 0x1)
+ if ((hw->mac.type != ixgbe_mac_X540)
+ && (hw->mac.type != ixgbe_mac_X550)) {
+ if (advertise & 0x1) {
+ device_printf(dev,
+ "Set Advertise: 100Mb on X540/X550 only\n");
+ return (EINVAL);
+ }
+ } else if ((advertise & 0x1) || (advertise == 0))
speed |= IXGBE_LINK_SPEED_100_FULL;
- if (advertise & 0x2)
+ if ((advertise & 0x2) || (advertise == 0))
speed |= IXGBE_LINK_SPEED_1GB_FULL;
- if (advertise & 0x4)
+ if ((advertise & 0x4) || (advertise == 0))
speed |= IXGBE_LINK_SPEED_10GB_FULL;
adapter->advertise = advertise;