<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/forcedeth.c, branch v2.6.30</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>forcedeth: add phy_power_down parameter, leave phy powered up by default (v2)</title>
<updated>2009-06-02T07:19:52+00:00</updated>
<author>
<name>Ed Swierk</name>
<email>eswierk@aristanetworks.com</email>
</author>
<published>2009-06-02T07:19:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5a9a8e32ebe269c71d8d3e78f9435fe7729f38e9'/>
<id>5a9a8e32ebe269c71d8d3e78f9435fe7729f38e9</id>
<content type='text'>
Add a phy_power_down parameter to forcedeth: set to 1 to power down the
phy and disable the link when an interface goes down; set to 0 to always
leave the phy powered up.

The phy power state persists across reboots; Windows, some BIOSes, and
older versions of Linux don't bother to power up the phy again, forcing
users to remove all power to get the interface working (see
http://bugzilla.kernel.org/show_bug.cgi?id=13072).  Leaving the phy
powered on is the safest default behavior.  Users accustomed to seeing
the link state reflect the interface state and/or wanting to minimize
power consumption can set phy_power_down=1 if compatibility with other
OSes is not an issue.

Signed-off-by: Ed Swierk &lt;eswierk@aristanetworks.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>
Add a phy_power_down parameter to forcedeth: set to 1 to power down the
phy and disable the link when an interface goes down; set to 0 to always
leave the phy powered up.

The phy power state persists across reboots; Windows, some BIOSes, and
older versions of Linux don't bother to power up the phy again, forcing
users to remove all power to get the interface working (see
http://bugzilla.kernel.org/show_bug.cgi?id=13072).  Leaving the phy
powered on is the safest default behavior.  Users accustomed to seeing
the link state reflect the interface state and/or wanting to minimize
power consumption can set phy_power_down=1 if compatibility with other
OSes is not an issue.

Signed-off-by: Ed Swierk &lt;eswierk@aristanetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: tx timeout fix</title>
<updated>2009-04-27T09:40:51+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2009-04-25T09:17:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8f955d7f042e4ac44891a400d5000928f8db9f58'/>
<id>8f955d7f042e4ac44891a400d5000928f8db9f58</id>
<content type='text'>
This patch fixes the tx_timeout() to properly handle the clean up of the
tx ring. It also sets the tx put pointer back to the correct position to
be in sync with HW.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.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 patch fixes the tx_timeout() to properly handle the clean up of the
tx ring. It also sets the tx put pointer back to the correct position to
be in sync with HW.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: Use napi_complete() not __napi_complete().</title>
<updated>2009-04-09T08:09:33+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-04-09T08:09:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6c2da9c2182fe64b1443a75efc09e493923e86b0'/>
<id>6c2da9c2182fe64b1443a75efc09e493923e86b0</id>
<content type='text'>
It's not enough that forcedeth's interrupts are disabled,
local cpu interrupts have to unconditionally be off
when we remove the device from the poll list.

Based upon a crash report from
Alexander Beregalov &lt;a.beregalov@gmail.com&gt;:

 WARNING: at lib/list_debug.c:30 __list_add+0x89/0x90()
 Hardware name:
 list_add corruption. prev-&gt;next should be next (c06ea834), but was
f70244c8. (prev=c06ea834).
 Modules linked in: w83627hf hwmon_vid i2c_nforce2
 Pid: 1436, comm: portageq Not tainted 2.6.30-rc1 #1
 Call Trace:
  [&lt;c0129d73&gt;] warn_slowpath+0x73/0xd0
  [&lt;c03c6008&gt;] ? __kfree_skb+0x38/0x90
  [&lt;c03f9b06&gt;] ? tcp_data_snd_check+0x26/0xe0
  [&lt;c03fd67f&gt;] ? tcp_rcv_established+0x2bf/0x5e0
  [&lt;c040557a&gt;] ? tcp_v4_rcv+0x47a/0x610
  [&lt;c014cebd&gt;] ? print_lock_contention_bug+0x1d/0x110
  [&lt;c044a967&gt;] ? _spin_unlock+0x27/0x50
  [&lt;c040564b&gt;] ? tcp_v4_rcv+0x54b/0x610
  [&lt;c02d86f9&gt;] __list_add+0x89/0x90
  [&lt;c03ccff9&gt;] __napi_schedule+0x29/0x60
  [&lt;c036946d&gt;] e1000_intr+0xbd/0x1a0
  [&lt;c015c5de&gt;] handle_IRQ_event+0x3e/0x120
  [&lt;c015e190&gt;] handle_fasteoi_irq+0x60/0xd0
  [&lt;c0104fd4&gt;] handle_irq+0x34/0x60
  [&lt;c015f748&gt;] ? rcu_irq_enter+0x8/0x40
  [&lt;c0104b29&gt;] do_IRQ+0x39/0xa0
  [&lt;c03c592c&gt;] ? skb_release_head_state+0x2c/0x60
  [&lt;c01034ee&gt;] common_interrupt+0x2e/0x34
  [&lt;c02d8601&gt;] ? list_del+0x21/0x90
  [&lt;c014e54b&gt;] ? trace_hardirqs_on+0xb/0x10
  [&lt;c03cd4da&gt;] __napi_complete+0x1a/0x30
  [&lt;c0381971&gt;] nv_napi_poll+0xd1/0x5c0
  [&lt;c014e54b&gt;] ? trace_hardirqs_on+0xb/0x10
  [&lt;c03cd5f6&gt;] net_rx_action+0x106/0x1b0
  [&lt;c012e8df&gt;] __do_softirq+0x6f/0x100
  [&lt;c044a967&gt;] ? _spin_unlock+0x27/0x50
  [&lt;c015e1b8&gt;] ? handle_fasteoi_irq+0x88/0xd0
  [&lt;c012e9cd&gt;] do_softirq+0x5d/0x70
  [&lt;c012ebad&gt;] irq_exit+0x7d/0xa0
  [&lt;c0104b32&gt;] do_IRQ+0x42/0xa0
  [&lt;c012e9b7&gt;] ? do_softirq+0x47/0x70
  [&lt;c01034ee&gt;] common_interrupt+0x2e/0x34

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's not enough that forcedeth's interrupts are disabled,
local cpu interrupts have to unconditionally be off
when we remove the device from the poll list.

Based upon a crash report from
Alexander Beregalov &lt;a.beregalov@gmail.com&gt;:

 WARNING: at lib/list_debug.c:30 __list_add+0x89/0x90()
 Hardware name:
 list_add corruption. prev-&gt;next should be next (c06ea834), but was
f70244c8. (prev=c06ea834).
 Modules linked in: w83627hf hwmon_vid i2c_nforce2
 Pid: 1436, comm: portageq Not tainted 2.6.30-rc1 #1
 Call Trace:
  [&lt;c0129d73&gt;] warn_slowpath+0x73/0xd0
  [&lt;c03c6008&gt;] ? __kfree_skb+0x38/0x90
  [&lt;c03f9b06&gt;] ? tcp_data_snd_check+0x26/0xe0
  [&lt;c03fd67f&gt;] ? tcp_rcv_established+0x2bf/0x5e0
  [&lt;c040557a&gt;] ? tcp_v4_rcv+0x47a/0x610
  [&lt;c014cebd&gt;] ? print_lock_contention_bug+0x1d/0x110
  [&lt;c044a967&gt;] ? _spin_unlock+0x27/0x50
  [&lt;c040564b&gt;] ? tcp_v4_rcv+0x54b/0x610
  [&lt;c02d86f9&gt;] __list_add+0x89/0x90
  [&lt;c03ccff9&gt;] __napi_schedule+0x29/0x60
  [&lt;c036946d&gt;] e1000_intr+0xbd/0x1a0
  [&lt;c015c5de&gt;] handle_IRQ_event+0x3e/0x120
  [&lt;c015e190&gt;] handle_fasteoi_irq+0x60/0xd0
  [&lt;c0104fd4&gt;] handle_irq+0x34/0x60
  [&lt;c015f748&gt;] ? rcu_irq_enter+0x8/0x40
  [&lt;c0104b29&gt;] do_IRQ+0x39/0xa0
  [&lt;c03c592c&gt;] ? skb_release_head_state+0x2c/0x60
  [&lt;c01034ee&gt;] common_interrupt+0x2e/0x34
  [&lt;c02d8601&gt;] ? list_del+0x21/0x90
  [&lt;c014e54b&gt;] ? trace_hardirqs_on+0xb/0x10
  [&lt;c03cd4da&gt;] __napi_complete+0x1a/0x30
  [&lt;c0381971&gt;] nv_napi_poll+0xd1/0x5c0
  [&lt;c014e54b&gt;] ? trace_hardirqs_on+0xb/0x10
  [&lt;c03cd5f6&gt;] net_rx_action+0x106/0x1b0
  [&lt;c012e8df&gt;] __do_softirq+0x6f/0x100
  [&lt;c044a967&gt;] ? _spin_unlock+0x27/0x50
  [&lt;c015e1b8&gt;] ? handle_fasteoi_irq+0x88/0xd0
  [&lt;c012e9cd&gt;] do_softirq+0x5d/0x70
  [&lt;c012ebad&gt;] irq_exit+0x7d/0xa0
  [&lt;c0104b32&gt;] do_IRQ+0x42/0xa0
  [&lt;c012e9b7&gt;] ? do_softirq+0x47/0x70
  [&lt;c01034ee&gt;] common_interrupt+0x2e/0x34

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dma-mapping: replace all DMA_39BIT_MASK macro with DMA_BIT_MASK(39)</title>
<updated>2009-04-07T15:31:11+00:00</updated>
<author>
<name>Yang Hongyang</name>
<email>yanghy@cn.fujitsu.com</email>
</author>
<published>2009-04-07T02:01:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6afd142fd0dfba497246d0fab236c20a7b4bf778'/>
<id>6afd142fd0dfba497246d0fab236c20a7b4bf778</id>
<content type='text'>
Replace all DMA_39BIT_MASK macro with DMA_BIT_MASK(39)

Signed-off-by: Yang Hongyang&lt;yanghy@cn.fujitsu.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace all DMA_39BIT_MASK macro with DMA_BIT_MASK(39)

Signed-off-by: Yang Hongyang&lt;yanghy@cn.fujitsu.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: Fix resume from hibernation regression.</title>
<updated>2009-04-07T00:49:12+00:00</updated>
<author>
<name>Ed Swierk</name>
<email>eswierk@aristanetworks.com</email>
</author>
<published>2009-04-07T00:49:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=35a7433c789ba6df6d96b70fa745ae9e6cac0038'/>
<id>35a7433c789ba6df6d96b70fa745ae9e6cac0038</id>
<content type='text'>
Reset phy state on resume, fixing a regression caused by powering down
the phy on hibernate.

Signed-off-by: Ed Swierk &lt;eswierk@aristanetworks.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>
Reset phy state on resume, fixing a regression caused by powering down
the phy on hibernate.

Signed-off-by: Ed Swierk &lt;eswierk@aristanetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: version bump to 64</title>
<updated>2009-03-10T12:29:52+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2009-03-05T08:02:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3e1a3ce2f19a8a74fe6771f6dcd642d61ae050dc'/>
<id>3e1a3ce2f19a8a74fe6771f6dcd642d61ae050dc</id>
<content type='text'>
This patch bumps up the version to 0.64

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.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 patch bumps up the version to 0.64

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: fix irq clearing and napi spin lock changes</title>
<updated>2009-03-10T12:29:51+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2009-03-05T08:02:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1b2bb76f575699eff3f58b18dcfebf5d3b1f6ddb'/>
<id>1b2bb76f575699eff3f58b18dcfebf5d3b1f6ddb</id>
<content type='text'>
This patch clears the irqstatus register with the exact same events it
has read from it. Since the read-write operation is not atomic, a new
irqstatus bit could have been set in between these operations and would
then be cleared accidentally.

Secondly, we now don't need any spin lock protection when
scheduling/completing napi poll as the isr will not execute anymore (as
we turn off all interrupts now).

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.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 patch clears the irqstatus register with the exact same events it
has read from it. Since the read-write operation is not atomic, a new
irqstatus bit could have been set in between these operations and would
then be cleared accidentally.

Secondly, we now don't need any spin lock protection when
scheduling/completing napi poll as the isr will not execute anymore (as
we turn off all interrupts now).

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: performance changes</title>
<updated>2009-03-10T12:29:50+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2009-03-05T08:02:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6cef67a02f7994c97dbd716dbeb592265fb5b7b0'/>
<id>6cef67a02f7994c97dbd716dbeb592265fb5b7b0</id>
<content type='text'>
This patch modifies the throughput mode poll settings to reduce the
number of interrupts. This is only used by older hardware that need a
timer irq in throughput mode.

Secondly, this patch increases the default rx ring from 128 to 512. This
drastically improves bandwidth utilization for small packets sizes i.e
512 bytes.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.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 patch modifies the throughput mode poll settings to reduce the
number of interrupts. This is only used by older hardware that need a
timer irq in throughput mode.

Secondly, this patch increases the default rx ring from 128 to 512. This
drastically improves bandwidth utilization for small packets sizes i.e
512 bytes.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: add interrupt moderation logic</title>
<updated>2009-03-10T12:29:49+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2009-03-05T08:02:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4145ade2bb265b34331265bfa2221e40b069b3ca'/>
<id>4145ade2bb265b34331265bfa2221e40b069b3ca</id>
<content type='text'>
This patch adds the logic to moderate the interrupts by changing the
mode between throughput and poll. If there has been a large amount of
time without any burst of network load, the code will transition to pure
throughput mode (where each tx/rx/other will cause an interrupt). If
bursts of network load occurs, it will transition to poll based mode to
help reduce cpu utilization (it will not interrupt on each packet) while
maintaining the optimum network bandwidth utilization.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.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 patch adds the logic to moderate the interrupts by changing the
mode between throughput and poll. If there has been a large amount of
time without any burst of network load, the code will transition to pure
throughput mode (where each tx/rx/other will cause an interrupt). If
bursts of network load occurs, it will transition to poll based mode to
help reduce cpu utilization (it will not interrupt on each packet) while
maintaining the optimum network bandwidth utilization.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: remove isr processing loop</title>
<updated>2009-03-10T12:29:49+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2009-03-05T08:02:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b67874ac1604cda8070d60d432e892c09d761b2e'/>
<id>b67874ac1604cda8070d60d432e892c09d761b2e</id>
<content type='text'>
This patch is only a subset of changes so that it is easier to see the
modifications. This patch removes the isr 'for' loop and shifts all the
logic to account for new tab spacing.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.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 patch is only a subset of changes so that it is easier to see the
modifications. This patch removes the isr 'for' loop and shifts all the
logic to account for new tab spacing.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
