aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-07-12 13:27:11 -0400
committerDavid S. Miller <davem@davemloft.net>2018-07-12 13:27:11 -0400
commit352884868adc97802b2f46a6792df1cb2a84f49c (patch)
tree07523ced939ed8d7c83ee722bac7e3e44197fbab
parent672f5ccece3ba3fc851d9c73924ae16f39e4c176 (diff)
parent8dc4b1a799fbf4e21ea014076284ee73bb4f9443 (diff)
Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue
Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2018-07-12 This series contains updates to ixgbe and e100/e1000 kernel documentation. Alex fixes ixgbe to ensure that we are more explicit about the ordering of updates to the receive address register (RAR) table. Dan Carpenter fixes an issue where we were reading one element beyond the end of the array. Mauro Carvalho Chehab fixes formatting issues in the e100.rst and e1000.rst that were causing errors during 'make htmldocs'. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--Documentation/networking/e100.rst27
-rw-r--r--Documentation/networking/e1000.rst187
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_common.c12
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c2
4 files changed, 141 insertions, 87 deletions
diff --git a/Documentation/networking/e100.rst b/Documentation/networking/e100.rst
index 9708f5fa76de..f81111eba9c5 100644
--- a/Documentation/networking/e100.rst
+++ b/Documentation/networking/e100.rst
@@ -47,41 +47,45 @@ Driver Configuration Parameters
47The default value for each parameter is generally the recommended setting, 47The default value for each parameter is generally the recommended setting,
48unless otherwise noted. 48unless otherwise noted.
49 49
50Rx Descriptors: Number of receive descriptors. A receive descriptor is a data 50Rx Descriptors:
51 Number of receive descriptors. A receive descriptor is a data
51 structure that describes a receive buffer and its attributes to the network 52 structure that describes a receive buffer and its attributes to the network
52 controller. The data in the descriptor is used by the controller to write 53 controller. The data in the descriptor is used by the controller to write
53 data from the controller to host memory. In the 3.x.x driver the valid range 54 data from the controller to host memory. In the 3.x.x driver the valid range
54 for this parameter is 64-256. The default value is 256. This parameter can be 55 for this parameter is 64-256. The default value is 256. This parameter can be
55 changed using the command:: 56 changed using the command::
56 57
57 ethtool -G eth? rx n 58 ethtool -G eth? rx n
58 59
59 Where n is the number of desired Rx descriptors. 60 Where n is the number of desired Rx descriptors.
60 61
61Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a data 62Tx Descriptors:
63 Number of transmit descriptors. A transmit descriptor is a data
62 structure that describes a transmit buffer and its attributes to the network 64 structure that describes a transmit buffer and its attributes to the network
63 controller. The data in the descriptor is used by the controller to read 65 controller. The data in the descriptor is used by the controller to read
64 data from the host memory to the controller. In the 3.x.x driver the valid 66 data from the host memory to the controller. In the 3.x.x driver the valid
65 range for this parameter is 64-256. The default value is 128. This parameter 67 range for this parameter is 64-256. The default value is 128. This parameter
66 can be changed using the command:: 68 can be changed using the command::
67 69
68 ethtool -G eth? tx n 70 ethtool -G eth? tx n
69 71
70 Where n is the number of desired Tx descriptors. 72 Where n is the number of desired Tx descriptors.
71 73
72Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by 74Speed/Duplex:
75 The driver auto-negotiates the link speed and duplex settings by
73 default. The ethtool utility can be used as follows to force speed/duplex.:: 76 default. The ethtool utility can be used as follows to force speed/duplex.::
74 77
75 ethtool -s eth? autoneg off speed {10|100} duplex {full|half} 78 ethtool -s eth? autoneg off speed {10|100} duplex {full|half}
76 79
77 NOTE: setting the speed/duplex to incorrect values will cause the link to 80 NOTE: setting the speed/duplex to incorrect values will cause the link to
78 fail. 81 fail.
79 82
80Event Log Message Level: The driver uses the message level flag to log events 83Event Log Message Level:
84 The driver uses the message level flag to log events
81 to syslog. The message level can be set at driver load time. It can also be 85 to syslog. The message level can be set at driver load time. It can also be
82 set using the command:: 86 set using the command::
83 87
84 ethtool -s eth? msglvl n 88 ethtool -s eth? msglvl n
85 89
86 90
87Additional Configurations 91Additional Configurations
@@ -92,7 +96,7 @@ Configuring the Driver on Different Distributions
92 96
93Configuring a network driver to load properly when the system is started 97Configuring a network driver to load properly when the system is started
94is distribution dependent. Typically, the configuration process involves 98is distribution dependent. Typically, the configuration process involves
95adding an alias line to /etc/modprobe.d/*.conf as well as editing other 99adding an alias line to `/etc/modprobe.d/*.conf` as well as editing other
96system startup scripts and/or configuration files. Many popular Linux 100system startup scripts and/or configuration files. Many popular Linux
97distributions ship with tools to make these changes for you. To learn 101distributions ship with tools to make these changes for you. To learn
98the proper way to configure a network device for your system, refer to 102the proper way to configure a network device for your system, refer to
@@ -160,7 +164,10 @@ This results in unbalanced receive traffic.
160If you have multiple interfaces in a server, either turn on ARP 164If you have multiple interfaces in a server, either turn on ARP
161filtering by 165filtering by
162 166
163(1) entering:: echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter 167(1) entering::
168
169 echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
170
164 (this only works if your kernel's version is higher than 2.4.5), or 171 (this only works if your kernel's version is higher than 2.4.5), or
165 172
166(2) installing the interfaces in separate broadcast domains (either 173(2) installing the interfaces in separate broadcast domains (either
diff --git a/Documentation/networking/e1000.rst b/Documentation/networking/e1000.rst
index 144b87eef153..f10dd4086921 100644
--- a/Documentation/networking/e1000.rst
+++ b/Documentation/networking/e1000.rst
@@ -34,7 +34,8 @@ Command Line Parameters
34The default value for each parameter is generally the recommended setting, 34The default value for each parameter is generally the recommended setting,
35unless otherwise noted. 35unless otherwise noted.
36 36
37NOTES: For more information about the AutoNeg, Duplex, and Speed 37NOTES:
38 For more information about the AutoNeg, Duplex, and Speed
38 parameters, see the "Speed and Duplex Configuration" section in 39 parameters, see the "Speed and Duplex Configuration" section in
39 this document. 40 this document.
40 41
@@ -45,22 +46,27 @@ NOTES: For more information about the AutoNeg, Duplex, and Speed
45 46
46AutoNeg 47AutoNeg
47------- 48-------
49
48(Supported only on adapters with copper connections) 50(Supported only on adapters with copper connections)
49Valid Range: 0x01-0x0F, 0x20-0x2F 51
50Default Value: 0x2F 52:Valid Range: 0x01-0x0F, 0x20-0x2F
53:Default Value: 0x2F
51 54
52This parameter is a bit-mask that specifies the speed and duplex settings 55This parameter is a bit-mask that specifies the speed and duplex settings
53advertised by the adapter. When this parameter is used, the Speed and 56advertised by the adapter. When this parameter is used, the Speed and
54Duplex parameters must not be specified. 57Duplex parameters must not be specified.
55 58
56NOTE: Refer to the Speed and Duplex section of this readme for more 59NOTE:
60 Refer to the Speed and Duplex section of this readme for more
57 information on the AutoNeg parameter. 61 information on the AutoNeg parameter.
58 62
59Duplex 63Duplex
60------ 64------
65
61(Supported only on adapters with copper connections) 66(Supported only on adapters with copper connections)
62Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full) 67
63Default Value: 0 68:Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full)
69:Default Value: 0
64 70
65This defines the direction in which data is allowed to flow. Can be 71This defines the direction in which data is allowed to flow. Can be
66either one or two-directional. If both Duplex and the link partner are 72either one or two-directional. If both Duplex and the link partner are
@@ -70,18 +76,22 @@ duplex.
70 76
71FlowControl 77FlowControl
72----------- 78-----------
73Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx) 79
74Default Value: Reads flow control settings from the EEPROM 80:Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx)
81:Default Value: Reads flow control settings from the EEPROM
75 82
76This parameter controls the automatic generation(Tx) and response(Rx) 83This parameter controls the automatic generation(Tx) and response(Rx)
77to Ethernet PAUSE frames. 84to Ethernet PAUSE frames.
78 85
79InterruptThrottleRate 86InterruptThrottleRate
80--------------------- 87---------------------
88
81(not supported on Intel(R) 82542, 82543 or 82544-based adapters) 89(not supported on Intel(R) 82542, 82543 or 82544-based adapters)
82Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative, 90
83 4=simplified balancing) 91:Valid Range:
84Default Value: 3 92 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,
93 4=simplified balancing)
94:Default Value: 3
85 95
86The driver can limit the amount of interrupts per second that the adapter 96The driver can limit the amount of interrupts per second that the adapter
87will generate for incoming packets. It does this by writing a value to the 97will generate for incoming packets. It does this by writing a value to the
@@ -135,13 +145,15 @@ Setting InterruptThrottleRate to 0 turns off any interrupt moderation
135and may improve small packet latency, but is generally not suitable 145and may improve small packet latency, but is generally not suitable
136for bulk throughput traffic. 146for bulk throughput traffic.
137 147
138NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and 148NOTE:
149 InterruptThrottleRate takes precedence over the TxAbsIntDelay and
139 RxAbsIntDelay parameters. In other words, minimizing the receive 150 RxAbsIntDelay parameters. In other words, minimizing the receive
140 and/or transmit absolute delays does not force the controller to 151 and/or transmit absolute delays does not force the controller to
141 generate more interrupts than what the Interrupt Throttle Rate 152 generate more interrupts than what the Interrupt Throttle Rate
142 allows. 153 allows.
143 154
144CAUTION: If you are using the Intel(R) PRO/1000 CT Network Connection 155CAUTION:
156 If you are using the Intel(R) PRO/1000 CT Network Connection
145 (controller 82547), setting InterruptThrottleRate to a value 157 (controller 82547), setting InterruptThrottleRate to a value
146 greater than 75,000, may hang (stop transmitting) adapters 158 greater than 75,000, may hang (stop transmitting) adapters
147 under certain network conditions. If this occurs a NETDEV 159 under certain network conditions. If this occurs a NETDEV
@@ -151,7 +163,8 @@ CAUTION: If you are using the Intel(R) PRO/1000 CT Network Connection
151 hang, ensure that InterruptThrottleRate is set no greater 163 hang, ensure that InterruptThrottleRate is set no greater
152 than 75,000 and is not set to 0. 164 than 75,000 and is not set to 0.
153 165
154NOTE: When e1000 is loaded with default settings and multiple adapters 166NOTE:
167 When e1000 is loaded with default settings and multiple adapters
155 are in use simultaneously, the CPU utilization may increase non- 168 are in use simultaneously, the CPU utilization may increase non-
156 linearly. In order to limit the CPU utilization without impacting 169 linearly. In order to limit the CPU utilization without impacting
157 the overall throughput, we recommend that you load the driver as 170 the overall throughput, we recommend that you load the driver as
@@ -168,9 +181,11 @@ NOTE: When e1000 is loaded with default settings and multiple adapters
168 181
169RxDescriptors 182RxDescriptors
170------------- 183-------------
171Valid Range: 48-256 for 82542 and 82543-based adapters 184
172 48-4096 for all other supported adapters 185:Valid Range:
173Default Value: 256 186 - 48-256 for 82542 and 82543-based adapters
187 - 48-4096 for all other supported adapters
188:Default Value: 256
174 189
175This value specifies the number of receive buffer descriptors allocated 190This value specifies the number of receive buffer descriptors allocated
176by the driver. Increasing this value allows the driver to buffer more 191by the driver. Increasing this value allows the driver to buffer more
@@ -180,15 +195,17 @@ Each descriptor is 16 bytes. A receive buffer is also allocated for each
180descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending 195descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending
181on the MTU setting. The maximum MTU size is 16110. 196on the MTU setting. The maximum MTU size is 16110.
182 197
183NOTE: MTU designates the frame size. It only needs to be set for Jumbo 198NOTE:
199 MTU designates the frame size. It only needs to be set for Jumbo
184 Frames. Depending on the available system resources, the request 200 Frames. Depending on the available system resources, the request
185 for a higher number of receive descriptors may be denied. In this 201 for a higher number of receive descriptors may be denied. In this
186 case, use a lower number. 202 case, use a lower number.
187 203
188RxIntDelay 204RxIntDelay
189---------- 205----------
190Valid Range: 0-65535 (0=off) 206
191Default Value: 0 207:Valid Range: 0-65535 (0=off)
208:Default Value: 0
192 209
193This value delays the generation of receive interrupts in units of 1.024 210This value delays the generation of receive interrupts in units of 1.024
194microseconds. Receive interrupt reduction can improve CPU efficiency if 211microseconds. Receive interrupt reduction can improve CPU efficiency if
@@ -198,7 +215,8 @@ of TCP traffic. If the system is reporting dropped receives, this value
198may be set too high, causing the driver to run out of available receive 215may be set too high, causing the driver to run out of available receive
199descriptors. 216descriptors.
200 217
201CAUTION: When setting RxIntDelay to a value other than 0, adapters may 218CAUTION:
219 When setting RxIntDelay to a value other than 0, adapters may
202 hang (stop transmitting) under certain network conditions. If 220 hang (stop transmitting) under certain network conditions. If
203 this occurs a NETDEV WATCHDOG message is logged in the system 221 this occurs a NETDEV WATCHDOG message is logged in the system
204 event log. In addition, the controller is automatically reset, 222 event log. In addition, the controller is automatically reset,
@@ -207,9 +225,11 @@ CAUTION: When setting RxIntDelay to a value other than 0, adapters may
207 225
208RxAbsIntDelay 226RxAbsIntDelay
209------------- 227-------------
228
210(This parameter is supported only on 82540, 82545 and later adapters.) 229(This parameter is supported only on 82540, 82545 and later adapters.)
211Valid Range: 0-65535 (0=off) 230
212Default Value: 128 231:Valid Range: 0-65535 (0=off)
232:Default Value: 128
213 233
214This value, in units of 1.024 microseconds, limits the delay in which a 234This value, in units of 1.024 microseconds, limits the delay in which a
215receive interrupt is generated. Useful only if RxIntDelay is non-zero, 235receive interrupt is generated. Useful only if RxIntDelay is non-zero,
@@ -220,9 +240,11 @@ conditions.
220 240
221Speed 241Speed
222----- 242-----
243
223(This parameter is supported only on adapters with copper connections.) 244(This parameter is supported only on adapters with copper connections.)
224Valid Settings: 0, 10, 100, 1000 245
225Default Value: 0 (auto-negotiate at all supported speeds) 246:Valid Settings: 0, 10, 100, 1000
247:Default Value: 0 (auto-negotiate at all supported speeds)
226 248
227Speed forces the line speed to the specified value in megabits per second 249Speed forces the line speed to the specified value in megabits per second
228(Mbps). If this parameter is not specified or is set to 0 and the link 250(Mbps). If this parameter is not specified or is set to 0 and the link
@@ -231,22 +253,26 @@ speed. Duplex should also be set when Speed is set to either 10 or 100.
231 253
232TxDescriptors 254TxDescriptors
233------------- 255-------------
234Valid Range: 48-256 for 82542 and 82543-based adapters 256
235 48-4096 for all other supported adapters 257:Valid Range:
236Default Value: 256 258 - 48-256 for 82542 and 82543-based adapters
259 - 48-4096 for all other supported adapters
260:Default Value: 256
237 261
238This value is the number of transmit descriptors allocated by the driver. 262This value is the number of transmit descriptors allocated by the driver.
239Increasing this value allows the driver to queue more transmits. Each 263Increasing this value allows the driver to queue more transmits. Each
240descriptor is 16 bytes. 264descriptor is 16 bytes.
241 265
242NOTE: Depending on the available system resources, the request for a 266NOTE:
267 Depending on the available system resources, the request for a
243 higher number of transmit descriptors may be denied. In this case, 268 higher number of transmit descriptors may be denied. In this case,
244 use a lower number. 269 use a lower number.
245 270
246TxIntDelay 271TxIntDelay
247---------- 272----------
248Valid Range: 0-65535 (0=off) 273
249Default Value: 8 274:Valid Range: 0-65535 (0=off)
275:Default Value: 8
250 276
251This value delays the generation of transmit interrupts in units of 277This value delays the generation of transmit interrupts in units of
2521.024 microseconds. Transmit interrupt reduction can improve CPU 2781.024 microseconds. Transmit interrupt reduction can improve CPU
@@ -256,9 +282,11 @@ causing the driver to run out of available transmit descriptors.
256 282
257TxAbsIntDelay 283TxAbsIntDelay
258------------- 284-------------
285
259(This parameter is supported only on 82540, 82545 and later adapters.) 286(This parameter is supported only on 82540, 82545 and later adapters.)
260Valid Range: 0-65535 (0=off) 287
261Default Value: 32 288:Valid Range: 0-65535 (0=off)
289:Default Value: 32
262 290
263This value, in units of 1.024 microseconds, limits the delay in which a 291This value, in units of 1.024 microseconds, limits the delay in which a
264transmit interrupt is generated. Useful only if TxIntDelay is non-zero, 292transmit interrupt is generated. Useful only if TxIntDelay is non-zero,
@@ -269,18 +297,21 @@ network conditions.
269 297
270XsumRX 298XsumRX
271------ 299------
300
272(This parameter is NOT supported on the 82542-based adapter.) 301(This parameter is NOT supported on the 82542-based adapter.)
273Valid Range: 0-1 302
274Default Value: 1 303:Valid Range: 0-1
304:Default Value: 1
275 305
276A value of '1' indicates that the driver should enable IP checksum 306A value of '1' indicates that the driver should enable IP checksum
277offload for received packets (both UDP and TCP) to the adapter hardware. 307offload for received packets (both UDP and TCP) to the adapter hardware.
278 308
279Copybreak 309Copybreak
280--------- 310---------
281Valid Range: 0-xxxxxxx (0=off) 311
282Default Value: 256 312:Valid Range: 0-xxxxxxx (0=off)
283Usage: modprobe e1000.ko copybreak=128 313:Default Value: 256
314:Usage: modprobe e1000.ko copybreak=128
284 315
285Driver copies all packets below or equaling this size to a fresh RX 316Driver copies all packets below or equaling this size to a fresh RX
286buffer before handing it up the stack. 317buffer before handing it up the stack.
@@ -292,8 +323,9 @@ it is also available during runtime at
292 323
293SmartPowerDownEnable 324SmartPowerDownEnable
294-------------------- 325--------------------
295Valid Range: 0-1 326
296Default Value: 0 (disabled) 327:Valid Range: 0-1
328:Default Value: 0 (disabled)
297 329
298Allows PHY to turn off in lower power states. The user can turn off 330Allows PHY to turn off in lower power states. The user can turn off
299this parameter in supported chipsets. 331this parameter in supported chipsets.
@@ -309,14 +341,14 @@ fiber interface board only links at 1000 Mbps full-duplex.
309 341
310For copper-based boards, the keywords interact as follows: 342For copper-based boards, the keywords interact as follows:
311 343
312 The default operation is auto-negotiate. The board advertises all 344- The default operation is auto-negotiate. The board advertises all
313 supported speed and duplex combinations, and it links at the highest 345 supported speed and duplex combinations, and it links at the highest
314 common speed and duplex mode IF the link partner is set to auto-negotiate. 346 common speed and duplex mode IF the link partner is set to auto-negotiate.
315 347
316 If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps 348- If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps
317 is advertised (The 1000BaseT spec requires auto-negotiation.) 349 is advertised (The 1000BaseT spec requires auto-negotiation.)
318 350
319 If Speed = 10 or 100, then both Speed and Duplex should be set. Auto- 351- If Speed = 10 or 100, then both Speed and Duplex should be set. Auto-
320 negotiation is disabled, and the AutoNeg parameter is ignored. Partner 352 negotiation is disabled, and the AutoNeg parameter is ignored. Partner
321 SHOULD also be forced. 353 SHOULD also be forced.
322 354
@@ -328,13 +360,15 @@ process.
328The parameter may be specified as either a decimal or hexadecimal value as 360The parameter may be specified as either a decimal or hexadecimal value as
329determined by the bitmap below. 361determined by the bitmap below.
330 362
363============== ====== ====== ======= ======= ====== ====== ======= ======
331Bit position 7 6 5 4 3 2 1 0 364Bit position 7 6 5 4 3 2 1 0
332Decimal Value 128 64 32 16 8 4 2 1 365Decimal Value 128 64 32 16 8 4 2 1
333Hex value 80 40 20 10 8 4 2 1 366Hex value 80 40 20 10 8 4 2 1
334Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10 367Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10
335Duplex Full Full Half Full Half 368Duplex Full Full Half Full Half
369============== ====== ====== ======= ======= ====== ====== ======= ======
336 370
337Some examples of using AutoNeg: 371Some examples of using AutoNeg::
338 372
339 modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half) 373 modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half)
340 modprobe e1000 AutoNeg=1 (Same as above) 374 modprobe e1000 AutoNeg=1 (Same as above)
@@ -357,56 +391,59 @@ Additional Configurations
357 391
358Jumbo Frames 392Jumbo Frames
359------------ 393------------
360Jumbo Frames support is enabled by changing the MTU to a value larger 394
361than the default of 1500. Use the ifconfig command to increase the MTU 395 Jumbo Frames support is enabled by changing the MTU to a value larger than
362size. For example:: 396 the default of 1500. Use the ifconfig command to increase the MTU size.
397 For example::
363 398
364 ifconfig eth<x> mtu 9000 up 399 ifconfig eth<x> mtu 9000 up
365 400
366This setting is not saved across reboots. It can be made permanent if 401 This setting is not saved across reboots. It can be made permanent if
367you add:: 402 you add::
368 403
369 MTU=9000 404 MTU=9000
370 405
371to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example 406 to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example
372applies to the Red Hat distributions; other distributions may store this 407 applies to the Red Hat distributions; other distributions may store this
373setting in a different location. 408 setting in a different location.
409
410Notes:
411 Degradation in throughput performance may be observed in some Jumbo frames
412 environments. If this is observed, increasing the application's socket buffer
413 size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values may help.
414 See the specific application manual and /usr/src/linux*/Documentation/
415 networking/ip-sysctl.txt for more details.
374 416
375Notes: Degradation in throughput performance may be observed in some 417 - The maximum MTU setting for Jumbo Frames is 16110. This value coincides
376Jumbo frames environments. If this is observed, increasing the 418 with the maximum Jumbo Frames size of 16128.
377application's socket buffer size and/or increasing the
378/proc/sys/net/ipv4/tcp_*mem entry values may help. See the specific
379application manual and /usr/src/linux*/Documentation/
380networking/ip-sysctl.txt for more details.
381 419
382- The maximum MTU setting for Jumbo Frames is 16110. This value 420 - Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
383 coincides with the maximum Jumbo Frames size of 16128. 421 poor performance or loss of link.
384 422
385- Using Jumbo frames at 10 or 100 Mbps is not supported and may result 423 - Adapters based on the Intel(R) 82542 and 82573V/E controller do not
386 in poor performance or loss of link. 424 support Jumbo Frames. These correspond to the following product names::
387 425
388- Adapters based on the Intel(R) 82542 and 82573V/E controller do not 426 Intel(R) PRO/1000 Gigabit Server Adapter
389 support Jumbo Frames. These correspond to the following product names: 427 Intel(R) PRO/1000 PM Network Connection
390 Intel(R) PRO/1000 Gigabit Server Adapter Intel(R) PRO/1000 PM Network
391 Connection
392 428
393ethtool 429ethtool
394------- 430-------
395The driver utilizes the ethtool interface for driver configuration and
396diagnostics, as well as displaying statistical information. The ethtool
397version 1.6 or later is required for this functionality.
398 431
399The latest release of ethtool can be found from 432 The driver utilizes the ethtool interface for driver configuration and
400https://www.kernel.org/pub/software/network/ethtool/ 433 diagnostics, as well as displaying statistical information. The ethtool
434 version 1.6 or later is required for this functionality.
435
436 The latest release of ethtool can be found from
437 https://www.kernel.org/pub/software/network/ethtool/
401 438
402Enabling Wake on LAN* (WoL) 439Enabling Wake on LAN* (WoL)
403--------------------------- 440---------------------------
404WoL is configured through the ethtool* utility.
405 441
406WoL will be enabled on the system during the next shut down or reboot. 442 WoL is configured through the ethtool* utility.
407For this driver version, in order to enable WoL, the e1000 driver must be
408loaded when shutting down or rebooting the system.
409 443
444 WoL will be enabled on the system during the next shut down or reboot.
445 For this driver version, in order to enable WoL, the e1000 driver must be
446 loaded when shutting down or rebooting the system.
410 447
411Support 448Support
412======= 449=======
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
index 3f5c350716bb..0bd1294ba517 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
@@ -1871,7 +1871,12 @@ s32 ixgbe_set_rar_generic(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq,
1871 if (enable_addr != 0) 1871 if (enable_addr != 0)
1872 rar_high |= IXGBE_RAH_AV; 1872 rar_high |= IXGBE_RAH_AV;
1873 1873
1874 /* Record lower 32 bits of MAC address and then make
1875 * sure that write is flushed to hardware before writing
1876 * the upper 16 bits and setting the valid bit.
1877 */
1874 IXGBE_WRITE_REG(hw, IXGBE_RAL(index), rar_low); 1878 IXGBE_WRITE_REG(hw, IXGBE_RAL(index), rar_low);
1879 IXGBE_WRITE_FLUSH(hw);
1875 IXGBE_WRITE_REG(hw, IXGBE_RAH(index), rar_high); 1880 IXGBE_WRITE_REG(hw, IXGBE_RAH(index), rar_high);
1876 1881
1877 return 0; 1882 return 0;
@@ -1903,8 +1908,13 @@ s32 ixgbe_clear_rar_generic(struct ixgbe_hw *hw, u32 index)
1903 rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(index)); 1908 rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(index));
1904 rar_high &= ~(0x0000FFFF | IXGBE_RAH_AV); 1909 rar_high &= ~(0x0000FFFF | IXGBE_RAH_AV);
1905 1910
1906 IXGBE_WRITE_REG(hw, IXGBE_RAL(index), 0); 1911 /* Clear the address valid bit and upper 16 bits of the address
1912 * before clearing the lower bits. This way we aren't updating
1913 * a live filter.
1914 */
1907 IXGBE_WRITE_REG(hw, IXGBE_RAH(index), rar_high); 1915 IXGBE_WRITE_REG(hw, IXGBE_RAH(index), rar_high);
1916 IXGBE_WRITE_FLUSH(hw);
1917 IXGBE_WRITE_REG(hw, IXGBE_RAL(index), 0);
1908 1918
1909 /* clear VMDq pool/queue selection for this RAR */ 1919 /* clear VMDq pool/queue selection for this RAR */
1910 hw->mac.ops.clear_vmdq(hw, index, IXGBE_CLEAR_VMDQ_ALL); 1920 hw->mac.ops.clear_vmdq(hw, index, IXGBE_CLEAR_VMDQ_ALL);
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
index c116f459945d..da4322e4daed 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
@@ -839,7 +839,7 @@ int ixgbe_ipsec_tx(struct ixgbe_ring *tx_ring,
839 } 839 }
840 840
841 itd->sa_idx = xs->xso.offload_handle - IXGBE_IPSEC_BASE_TX_INDEX; 841 itd->sa_idx = xs->xso.offload_handle - IXGBE_IPSEC_BASE_TX_INDEX;
842 if (unlikely(itd->sa_idx > IXGBE_IPSEC_MAX_SA_COUNT)) { 842 if (unlikely(itd->sa_idx >= IXGBE_IPSEC_MAX_SA_COUNT)) {
843 netdev_err(tx_ring->netdev, "%s: bad sa_idx=%d handle=%lu\n", 843 netdev_err(tx_ring->netdev, "%s: bad sa_idx=%d handle=%lu\n",
844 __func__, itd->sa_idx, xs->xso.offload_handle); 844 __func__, itd->sa_idx, xs->xso.offload_handle);
845 return 0; 845 return 0;