<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net/e1000e, branch v3.0.3</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>e1000e: alternate MAC address does not work on device id 0x1060</title>
<updated>2011-08-16T01:31:42+00:00</updated>
<author>
<name>Bruce Allan</name>
<email>bruce.w.allan@intel.com</email>
</author>
<published>2011-07-22T06:21:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=716ae31687f2d778ff9a18e7286deca992dfa955'/>
<id>716ae31687f2d778ff9a18e7286deca992dfa955</id>
<content type='text'>
commit c407bee8a56d874b91f3e4ee790660959ff1a25e upstream.

This issue is present all the way back to 2.6.34 kernels.

Signed-off-by: Bruce Allan &lt;bruce.w.allan@intel.com&gt;
Tested-by: Jeffrey Pieper &lt;jeffrey.e.pieper@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit c407bee8a56d874b91f3e4ee790660959ff1a25e upstream.

This issue is present all the way back to 2.6.34 kernels.

Signed-off-by: Bruce Allan &lt;bruce.w.allan@intel.com&gt;
Tested-by: Jeffrey Pieper &lt;jeffrey.e.pieper@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6</title>
<updated>2011-05-23T22:39:34+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-05-23T22:39:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5e152b4c9e0fce6149c74406346a7ae7e7a17727'/>
<id>5e152b4c9e0fce6149c74406346a7ae7e7a17727</id>
<content type='text'>
* 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (27 commits)
  PCI: Don't use dmi_name_in_vendors in quirk
  PCI: remove unused AER functions
  PCI/sysfs: move bus cpuaffinity to class dev_attrs
  PCI: add rescan to /sys/.../pci_bus/.../
  PCI: update bridge resources to get more big ranges when allocating space (again)
  KVM: Use pci_store/load_saved_state() around VM device usage
  PCI: Add interfaces to store and load the device saved state
  PCI: Track the size of each saved capability data area
  PCI/e1000e: Add and use pci_disable_link_state_locked()
  x86/PCI: derive pcibios_last_bus from ACPI MCFG
  PCI: add latency tolerance reporting enable/disable support
  PCI: add OBFF enable/disable support
  PCI: add ID-based ordering enable/disable support
  PCI hotplug: acpiphp: assume device is in state D0 after powering on a slot.
  PCI: Set PCIE maxpayload for card during hotplug insertion
  PCI/ACPI: Report _OSC control mask returned on failure to get control
  x86/PCI: irq and pci_ids patch for Intel Panther Point DeviceIDs
  PCI: handle positive error codes
  PCI: check pci_vpd_pci22_wait() return
  PCI: Use ICH6_GPIO_EN in ich6_lpc_acpi_gpio
  ...

Fix up trivial conflicts in include/linux/pci_ids.h: commit a6e5e2be4461
moved the intel SMBUS ID definitons to the i2c-i801.c driver.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (27 commits)
  PCI: Don't use dmi_name_in_vendors in quirk
  PCI: remove unused AER functions
  PCI/sysfs: move bus cpuaffinity to class dev_attrs
  PCI: add rescan to /sys/.../pci_bus/.../
  PCI: update bridge resources to get more big ranges when allocating space (again)
  KVM: Use pci_store/load_saved_state() around VM device usage
  PCI: Add interfaces to store and load the device saved state
  PCI: Track the size of each saved capability data area
  PCI/e1000e: Add and use pci_disable_link_state_locked()
  x86/PCI: derive pcibios_last_bus from ACPI MCFG
  PCI: add latency tolerance reporting enable/disable support
  PCI: add OBFF enable/disable support
  PCI: add ID-based ordering enable/disable support
  PCI hotplug: acpiphp: assume device is in state D0 after powering on a slot.
  PCI: Set PCIE maxpayload for card during hotplug insertion
  PCI/ACPI: Report _OSC control mask returned on failure to get control
  x86/PCI: irq and pci_ids patch for Intel Panther Point DeviceIDs
  PCI: handle positive error codes
  PCI: check pci_vpd_pci22_wait() return
  PCI: Use ICH6_GPIO_EN in ich6_lpc_acpi_gpio
  ...

Fix up trivial conflicts in include/linux/pci_ids.h: commit a6e5e2be4461
moved the intel SMBUS ID definitons to the i2c-i801.c driver.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add appropriate &lt;linux/prefetch.h&gt; include for prefetch users</title>
<updated>2011-05-23T04:41:57+00:00</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2011-05-22T20:47:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=70c71606190e9115e5f8363bfcd164c582eb314a'/>
<id>70c71606190e9115e5f8363bfcd164c582eb314a</id>
<content type='text'>
After discovering that wide use of prefetch on modern CPUs
could be a net loss instead of a win, net drivers which were
relying on the implicit inclusion of prefetch.h via the list
headers showed up in the resulting cleanup fallout.  Give
them an explicit include via the following $0.02 script.

 =========================================
 #!/bin/bash
 MANUAL=""
 for i in `git grep -l 'prefetch(.*)' .` ; do
 	grep -q '&lt;linux/prefetch.h&gt;' $i
 	if [ $? = 0 ] ; then
 		continue
 	fi

 	(	echo '?^#include &lt;linux/?a'
 		echo '#include &lt;linux/prefetch.h&gt;'
 		echo .
 		echo w
 		echo q
 	) | ed -s $i &gt; /dev/null 2&gt;&amp;1
 	if [ $? != 0 ]; then
 		echo $i needs manual fixup
 		MANUAL="$i $MANUAL"
 	fi
 done
 echo ------------------- 8\&lt;----------------------
 echo vi $MANUAL
 =========================================

Signed-off-by: Paul &lt;paul.gortmaker@windriver.com&gt;
[ Fixed up some incorrect #include placements, and added some
  non-network drivers and the fib_trie.c case    - Linus ]
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After discovering that wide use of prefetch on modern CPUs
could be a net loss instead of a win, net drivers which were
relying on the implicit inclusion of prefetch.h via the list
headers showed up in the resulting cleanup fallout.  Give
them an explicit include via the following $0.02 script.

 =========================================
 #!/bin/bash
 MANUAL=""
 for i in `git grep -l 'prefetch(.*)' .` ; do
 	grep -q '&lt;linux/prefetch.h&gt;' $i
 	if [ $? = 0 ] ; then
 		continue
 	fi

 	(	echo '?^#include &lt;linux/?a'
 		echo '#include &lt;linux/prefetch.h&gt;'
 		echo .
 		echo w
 		echo q
 	) | ed -s $i &gt; /dev/null 2&gt;&amp;1
 	if [ $? != 0 ]; then
 		echo $i needs manual fixup
 		MANUAL="$i $MANUAL"
 	fi
 done
 echo ------------------- 8\&lt;----------------------
 echo vi $MANUAL
 =========================================

Signed-off-by: Paul &lt;paul.gortmaker@windriver.com&gt;
[ Fixed up some incorrect #include placements, and added some
  non-network drivers and the fib_trie.c case    - Linus ]
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PCI/e1000e: Add and use pci_disable_link_state_locked()</title>
<updated>2011-05-21T19:16:44+00:00</updated>
<author>
<name>Yinghai Lu</name>
<email>yinghai@kernel.org</email>
</author>
<published>2011-05-13T00:11:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9f728f53dd70396f3183d2f0861022259471824b'/>
<id>9f728f53dd70396f3183d2f0861022259471824b</id>
<content type='text'>
Need to use it in _e1000e_disable_aspm.  This routine is used for error
recovery, where the pci_bus_sem is already held, and we don't want
pci_disable_link_state to try to take it again.  So add a locked variant
for use in cases like this.

Found lock up:

[ 2374.654557] kworker/32:1    D ffff881027f6b0f0     0  6075      2 0x00000000
[ 2374.654816]  ffff88503f099a68 0000000000000046 ffff88503f098000 0000000000004000
[ 2374.654837]  00000000001d1ec0 ffff88503f099fd8 00000000001d1ec0 ffff88503f099fd8
[ 2374.654860]  0000000000004000 00000000001d1ec0 ffff88503dcc8000 ffff88503f090000
[ 2374.654880] Call Trace:
[ 2374.654898]  [&lt;ffffffff810b1302&gt;] ? __lock_acquired+0x3a/0x224
[ 2374.654914]  [&lt;ffffffff81c2b59c&gt;] ? _raw_spin_unlock_irq+0x30/0x36
[ 2374.654925]  [&lt;ffffffff810b069d&gt;] ? trace_hardirqs_on_caller+0x1f/0x178
[ 2374.654936]  [&lt;ffffffff81c2ab24&gt;] rwsem_down_failed_common+0xd3/0x103
[ 2374.654945]  [&lt;ffffffff810b158f&gt;] ? __lock_contended+0x3a/0x2a2
[ 2374.654955]  [&lt;ffffffff81c2ab7b&gt;] rwsem_down_read_failed+0x12/0x14
[ 2374.654967]  [&lt;ffffffff813371e4&gt;] call_rwsem_down_read_failed+0x14/0x30
[ 2374.654981]  [&lt;ffffffff8135df20&gt;] ? pci_disable_link_state+0x5f/0xf5
[ 2374.654990]  [&lt;ffffffff81c2a0e6&gt;] ? down_read+0x7e/0x91
[ 2374.654999]  [&lt;ffffffff8135df20&gt;] ? pci_disable_link_state+0x5f/0xf5
[ 2374.655008]  [&lt;ffffffff8135df20&gt;] pci_disable_link_state+0x5f/0xf5
[ 2374.655024]  [&lt;ffffffff81661796&gt;] e1000e_disable_aspm+0x55/0x5a
[ 2374.655037]  [&lt;ffffffff816677eb&gt;] e1000_io_slot_reset+0x59/0xea
[ 2374.655048]  [&lt;ffffffff8135fe0d&gt;] ? report_mmio_enabled+0x5d/0x5d
[ 2374.655057]  [&lt;ffffffff8135fe3b&gt;] report_slot_reset+0x2e/0x5d
[ 2374.655072]  [&lt;ffffffff8135369e&gt;] pci_walk_bus+0x8a/0xb7
[ 2374.655081]  [&lt;ffffffff8135fe0d&gt;] ? report_mmio_enabled+0x5d/0x5d
[ 2374.655091]  [&lt;ffffffff813603be&gt;] broadcast_error_message+0xa4/0xb2
[ 2374.655101]  [&lt;ffffffff81352c71&gt;] ? pci_bus_read_config_dword+0x72/0x80
[ 2374.655110]  [&lt;ffffffff813606df&gt;] do_recovery+0x9e/0xf9
[ 2374.655120]  [&lt;ffffffff81360786&gt;] handle_error_source+0x4c/0x51
[ 2374.655129]  [&lt;ffffffff81360974&gt;] aer_isr_one_error+0x1e9/0x21a
[ 2374.655138]  [&lt;ffffffff81360a6c&gt;] aer_isr+0xc7/0xcc
[ 2374.655147]  [&lt;ffffffff813609a5&gt;] ? aer_isr_one_error+0x21a/0x21a
[ 2374.655159]  [&lt;ffffffff81096d9f&gt;] process_one_work+0x237/0x3ec
[ 2374.655168]  [&lt;ffffffff81096d10&gt;] ? process_one_work+0x1a8/0x3ec
[ 2374.655178]  [&lt;ffffffff8109728d&gt;] worker_thread+0x17c/0x240
[ 2374.655186]  [&lt;ffffffff810b0803&gt;] ? trace_hardirqs_on+0xd/0xf
[ 2374.655196]  [&lt;ffffffff81097111&gt;] ? manage_workers+0xab/0xab
[ 2374.655209]  [&lt;ffffffff8109c8ed&gt;] kthread+0xa0/0xa8
[ 2374.655223]  [&lt;ffffffff81c332d4&gt;] kernel_thread_helper+0x4/0x10
[ 2374.655232]  [&lt;ffffffff81c2b880&gt;] ? retint_restore_args+0xe/0xe
[ 2374.655243]  [&lt;ffffffff8109c84d&gt;] ? __init_kthread_worker+0x5b/0x5b
[ 2374.655252]  [&lt;ffffffff81c332d0&gt;] ? gs_change+0xb/0xb

when aer happens,
pci_walk_bus already have down_read(&amp;pci_bus_sem)...
then report_slot_reset
        ==&gt; e1000_io_slot_reset
                ==&gt; e1000e_disable_aspm
                        ==&gt; pci_disable_link_state...

We can not use pci_disable_link_state, and it will try to hold pci_bus_sem again.

Try to have __pci_disable_link_state that will not need to hold pci_bus_sem.

-v2: change name to pci_disable_link_state_locked() according to Jesse.

[jbarnes: make sure new function is exported for modules]

Signed-off-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Need to use it in _e1000e_disable_aspm.  This routine is used for error
recovery, where the pci_bus_sem is already held, and we don't want
pci_disable_link_state to try to take it again.  So add a locked variant
for use in cases like this.

Found lock up:

[ 2374.654557] kworker/32:1    D ffff881027f6b0f0     0  6075      2 0x00000000
[ 2374.654816]  ffff88503f099a68 0000000000000046 ffff88503f098000 0000000000004000
[ 2374.654837]  00000000001d1ec0 ffff88503f099fd8 00000000001d1ec0 ffff88503f099fd8
[ 2374.654860]  0000000000004000 00000000001d1ec0 ffff88503dcc8000 ffff88503f090000
[ 2374.654880] Call Trace:
[ 2374.654898]  [&lt;ffffffff810b1302&gt;] ? __lock_acquired+0x3a/0x224
[ 2374.654914]  [&lt;ffffffff81c2b59c&gt;] ? _raw_spin_unlock_irq+0x30/0x36
[ 2374.654925]  [&lt;ffffffff810b069d&gt;] ? trace_hardirqs_on_caller+0x1f/0x178
[ 2374.654936]  [&lt;ffffffff81c2ab24&gt;] rwsem_down_failed_common+0xd3/0x103
[ 2374.654945]  [&lt;ffffffff810b158f&gt;] ? __lock_contended+0x3a/0x2a2
[ 2374.654955]  [&lt;ffffffff81c2ab7b&gt;] rwsem_down_read_failed+0x12/0x14
[ 2374.654967]  [&lt;ffffffff813371e4&gt;] call_rwsem_down_read_failed+0x14/0x30
[ 2374.654981]  [&lt;ffffffff8135df20&gt;] ? pci_disable_link_state+0x5f/0xf5
[ 2374.654990]  [&lt;ffffffff81c2a0e6&gt;] ? down_read+0x7e/0x91
[ 2374.654999]  [&lt;ffffffff8135df20&gt;] ? pci_disable_link_state+0x5f/0xf5
[ 2374.655008]  [&lt;ffffffff8135df20&gt;] pci_disable_link_state+0x5f/0xf5
[ 2374.655024]  [&lt;ffffffff81661796&gt;] e1000e_disable_aspm+0x55/0x5a
[ 2374.655037]  [&lt;ffffffff816677eb&gt;] e1000_io_slot_reset+0x59/0xea
[ 2374.655048]  [&lt;ffffffff8135fe0d&gt;] ? report_mmio_enabled+0x5d/0x5d
[ 2374.655057]  [&lt;ffffffff8135fe3b&gt;] report_slot_reset+0x2e/0x5d
[ 2374.655072]  [&lt;ffffffff8135369e&gt;] pci_walk_bus+0x8a/0xb7
[ 2374.655081]  [&lt;ffffffff8135fe0d&gt;] ? report_mmio_enabled+0x5d/0x5d
[ 2374.655091]  [&lt;ffffffff813603be&gt;] broadcast_error_message+0xa4/0xb2
[ 2374.655101]  [&lt;ffffffff81352c71&gt;] ? pci_bus_read_config_dword+0x72/0x80
[ 2374.655110]  [&lt;ffffffff813606df&gt;] do_recovery+0x9e/0xf9
[ 2374.655120]  [&lt;ffffffff81360786&gt;] handle_error_source+0x4c/0x51
[ 2374.655129]  [&lt;ffffffff81360974&gt;] aer_isr_one_error+0x1e9/0x21a
[ 2374.655138]  [&lt;ffffffff81360a6c&gt;] aer_isr+0xc7/0xcc
[ 2374.655147]  [&lt;ffffffff813609a5&gt;] ? aer_isr_one_error+0x21a/0x21a
[ 2374.655159]  [&lt;ffffffff81096d9f&gt;] process_one_work+0x237/0x3ec
[ 2374.655168]  [&lt;ffffffff81096d10&gt;] ? process_one_work+0x1a8/0x3ec
[ 2374.655178]  [&lt;ffffffff8109728d&gt;] worker_thread+0x17c/0x240
[ 2374.655186]  [&lt;ffffffff810b0803&gt;] ? trace_hardirqs_on+0xd/0xf
[ 2374.655196]  [&lt;ffffffff81097111&gt;] ? manage_workers+0xab/0xab
[ 2374.655209]  [&lt;ffffffff8109c8ed&gt;] kthread+0xa0/0xa8
[ 2374.655223]  [&lt;ffffffff81c332d4&gt;] kernel_thread_helper+0x4/0x10
[ 2374.655232]  [&lt;ffffffff81c2b880&gt;] ? retint_restore_args+0xe/0xe
[ 2374.655243]  [&lt;ffffffff8109c84d&gt;] ? __init_kthread_worker+0x5b/0x5b
[ 2374.655252]  [&lt;ffffffff81c332d0&gt;] ? gs_change+0xb/0xb

when aer happens,
pci_walk_bus already have down_read(&amp;pci_bus_sem)...
then report_slot_reset
        ==&gt; e1000_io_slot_reset
                ==&gt; e1000e_disable_aspm
                        ==&gt; pci_disable_link_state...

We can not use pci_disable_link_state, and it will try to hold pci_bus_sem again.

Try to have __pci_disable_link_state that will not need to hold pci_bus_sem.

-v2: change name to pci_disable_link_state_locked() according to Jesse.

[jbarnes: make sure new function is exported for modules]

Signed-off-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>e1000e: minor comment cleanups</title>
<updated>2011-05-15T00:50:01+00:00</updated>
<author>
<name>Bruce Allan</name>
<email>bruce.w.allan@intel.com</email>
</author>
<published>2011-05-13T07:19:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d64a6f4dca0b45495dd5be8116b618d9cc004eea'/>
<id>d64a6f4dca0b45495dd5be8116b618d9cc004eea</id>
<content type='text'>
Signed-off-by: Bruce Allan &lt;bruce.w.allan@intel.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Bruce Allan &lt;bruce.w.allan@intel.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net/igb/e1000/e1000e: more robust ethtool duplex/speed configuration</title>
<updated>2011-04-29T21:03:03+00:00</updated>
<author>
<name>David Decotigny</name>
<email>decot@google.com</email>
</author>
<published>2011-04-27T18:32:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=14ad2513ed5b709e566a853f4b515d91c5d83311'/>
<id>14ad2513ed5b709e566a853f4b515d91c5d83311</id>
<content type='text'>
This makes sure that one cannot request a 99Mbps full-duplex and get a
100Mbps half-duplex configuration in return due to the way the
speed/duplex parameters are handled internally.

Tested: e1000 works
Signed-off-by: David Decotigny &lt;decot@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes sure that one cannot request a 99Mbps full-duplex and get a
100Mbps half-duplex configuration in return due to the way the
speed/duplex parameters are handled internally.

Tested: e1000 works
Signed-off-by: David Decotigny &lt;decot@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ethtool: cosmetic: Use ethtool ethtool_cmd_speed API</title>
<updated>2011-04-29T21:03:01+00:00</updated>
<author>
<name>David Decotigny</name>
<email>decot@google.com</email>
</author>
<published>2011-04-27T18:32:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=707394972093e2056e1e8cc39be19cf9bcb3e7b3'/>
<id>707394972093e2056e1e8cc39be19cf9bcb3e7b3</id>
<content type='text'>
This updates the network drivers so that they don't access the
ethtool_cmd::speed field directly, but use ethtool_cmd_speed()
instead.

For most of the drivers, these changes are purely cosmetic and don't
fix any problem, such as for those 1GbE/10GbE drivers that indirectly
call their own ethtool get_settings()/mii_ethtool_gset(). The changes
are meant to enforce code consistency and provide robustness with
future larger throughputs, at the expense of a few CPU cycles for each
ethtool operation.

All drivers compiled with make allyesconfig ion x86_64 have been
updated.

Tested: make allyesconfig on x86_64 + e1000e/bnx2x work
Signed-off-by: David Decotigny &lt;decot@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This updates the network drivers so that they don't access the
ethtool_cmd::speed field directly, but use ethtool_cmd_speed()
instead.

For most of the drivers, these changes are purely cosmetic and don't
fix any problem, such as for those 1GbE/10GbE drivers that indirectly
call their own ethtool get_settings()/mii_ethtool_gset(). The changes
are meant to enforce code consistency and provide robustness with
future larger throughputs, at the expense of a few CPU cycles for each
ethtool operation.

All drivers compiled with make allyesconfig ion x86_64 have been
updated.

Tested: make allyesconfig on x86_64 + e1000e/bnx2x work
Signed-off-by: David Decotigny &lt;decot@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ethtool: Use full 32 bit speed range in ethtool's set_settings</title>
<updated>2011-04-29T21:03:00+00:00</updated>
<author>
<name>David Decotigny</name>
<email>decot@google.com</email>
</author>
<published>2011-04-27T18:32:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=25db0338813a8915457636b1f6abe6a28fa73f8d'/>
<id>25db0338813a8915457636b1f6abe6a28fa73f8d</id>
<content type='text'>
This makes sure the ethtool's set_settings() callback of network
drivers don't ignore the 16 most significant bits when ethtool calls
their set_settings().

All drivers compiled with make allyesconfig on x86_64 have been
updated.

Signed-off-by: David Decotigny &lt;decot@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes sure the ethtool's set_settings() callback of network
drivers don't ignore the 16 most significant bits when ethtool calls
their set_settings().

All drivers compiled with make allyesconfig on x86_64 have been
updated.

Signed-off-by: David Decotigny &lt;decot@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>e1000e: implement ethtool set_phys_id</title>
<updated>2011-04-27T09:05:53+00:00</updated>
<author>
<name>Bruce Allan</name>
<email>bruce.w.allan@intel.com</email>
</author>
<published>2011-04-16T00:34:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=dbf80dcbd8ca0c50f343401fedd2d6200cb8097e'/>
<id>dbf80dcbd8ca0c50f343401fedd2d6200cb8097e</id>
<content type='text'>
Based on a patch from Stephen Hemminger &lt;shemminger@vyatta.com&gt;.

The new ethtool set_phys_id takes over controlling the LED for
identifying boards.  This fixes the lockout during that period.
For this device lots of extra infrastructure can also be removed by
using set_phys_id.

v2: - return blink frequency for parts that do not support blink in h/w
    - add blink_led function pointers for devices that do support blink
      in h/w to cleanup the test for this functionality

Signed-off-by: Bruce Allan &lt;bruce.w.allan@intel.com&gt;
Cc: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on a patch from Stephen Hemminger &lt;shemminger@vyatta.com&gt;.

The new ethtool set_phys_id takes over controlling the LED for
identifying boards.  This fixes the lockout during that period.
For this device lots of extra infrastructure can also be removed by
using set_phys_id.

v2: - return blink frequency for parts that do not support blink in h/w
    - add blink_led function pointers for devices that do support blink
      in h/w to cleanup the test for this functionality

Signed-off-by: Bruce Allan &lt;bruce.w.allan@intel.com&gt;
Cc: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>e1000e: If ASPM L0s needs to be disabled, do it prior to enabling device</title>
<updated>2011-04-14T02:19:22+00:00</updated>
<author>
<name>Bruce Allan</name>
<email>bruce.w.allan@intel.com</email>
</author>
<published>2011-03-24T03:09:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=78cd29d5a92ae5067377ad42089f2c8781312f4a'/>
<id>78cd29d5a92ae5067377ad42089f2c8781312f4a</id>
<content type='text'>
Based on a patch from Naga Chumbalkar &lt;nagananda.chumbalkar@hp.com&gt;:

If ASPM L0s needs to be disabled due to HW errata, do it prior to
"enabling" the device. This way if the kernel ever defaults its
aspm_policy to POLICY_POWERSAVE, then the e1000e driver will get a
chance to disable ASPM on the misbehaving device *prior* to calling
pci_enable_device_mem(). This will be useful in situations
where the BIOS indicates ASPM support on the server by clearing the
ACPI FADT "ASPM Controls" bit.

Note:
The kernel (2.6.38) currently uses the BIOS "default" as its aspm_policy.
However, Linux distros can diverge from that and set the default to
"powersave".

v2: o cleanup namespace pollution of e1000e_disable_aspm(),
    o fix type and initialization of the new aspm_disable_flag in a few
      functions, and
    o redefine FLAG2_DISABLE_ASPM_L0S to the first unused bit in
      adapter-&gt;flags2.

Signed-off-by: Bruce Allan &lt;bruce.w.allan@intel.com&gt;
Cc: Naga Chumbalkar &lt;nagananda.chumbalkar@hp.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on a patch from Naga Chumbalkar &lt;nagananda.chumbalkar@hp.com&gt;:

If ASPM L0s needs to be disabled due to HW errata, do it prior to
"enabling" the device. This way if the kernel ever defaults its
aspm_policy to POLICY_POWERSAVE, then the e1000e driver will get a
chance to disable ASPM on the misbehaving device *prior* to calling
pci_enable_device_mem(). This will be useful in situations
where the BIOS indicates ASPM support on the server by clearing the
ACPI FADT "ASPM Controls" bit.

Note:
The kernel (2.6.38) currently uses the BIOS "default" as its aspm_policy.
However, Linux distros can diverge from that and set the default to
"powersave".

v2: o cleanup namespace pollution of e1000e_disable_aspm(),
    o fix type and initialization of the new aspm_disable_flag in a few
      functions, and
    o redefine FLAG2_DISABLE_ASPM_L0S to the first unused bit in
      adapter-&gt;flags2.

Signed-off-by: Bruce Allan &lt;bruce.w.allan@intel.com&gt;
Cc: Naga Chumbalkar &lt;nagananda.chumbalkar@hp.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
