<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net/forcedeth.c, branch v2.6.26-rc7</title>
<subtitle>Clone of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/'/>
<entry>
<title>forcedeth: msi interrupts</title>
<updated>2008-06-10T22:20:13+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2008-06-09T23:51:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=4db0ee176e256444695ee2d7b004552e82fec987'/>
<id>4db0ee176e256444695ee2d7b004552e82fec987</id>
<content type='text'>
Add a workaround for lost MSI interrupts.  There is a race condition in
the HW in which future interrupts could be missed.  The workaround is to
toggle the MSI irq mask.

Added cleanup based on comments from Andrew Morton.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Cc: Manfred Spraul &lt;manfred@colorfullife.com&gt;
Cc: Jeff Garzik &lt;jeff@garzik.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a workaround for lost MSI interrupts.  There is a race condition in
the HW in which future interrupts could be missed.  The workaround is to
toggle the MSI irq mask.

Added cleanup based on comments from Andrew Morton.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Cc: Manfred Spraul &lt;manfred@colorfullife.com&gt;
Cc: Jeff Garzik &lt;jeff@garzik.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[netdrvr] forcedeth: Restore multicast settings on resume</title>
<updated>2008-05-22T10:18:47+00:00</updated>
<author>
<name>Tobias Diedrich</name>
<email>ranma+kernel@tdiedrich.de</email>
</author>
<published>2008-05-18T13:00:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=40ba182e3ca9f019f299ce5052fcd7e4cf68d11b'/>
<id>40ba182e3ca9f019f299ce5052fcd7e4cf68d11b</id>
<content type='text'>
nv_open() resets multicast settings, call nv_set_multicast(dev)
to restore them.  (Maybe this should rather be moved into nv_open())

Signed-off-by: Tobias Diedrich &lt;ranma+kernel@tdiedrich.de&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nv_open() resets multicast settings, call nv_set_multicast(dev)
to restore them.  (Maybe this should rather be moved into nv_open())

Signed-off-by: Tobias Diedrich &lt;ranma+kernel@tdiedrich.de&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: realtek phy crossover detection</title>
<updated>2008-04-25T06:08:57+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2008-04-23T18:37:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=9f3f7910c67adfb520bbae3d8b16985439a97198'/>
<id>9f3f7910c67adfb520bbae3d8b16985439a97198</id>
<content type='text'>
This patch fixes an issue seen with the realtek 8201 phy. This phy has a
problem with crossover detection and it needs to be disabled. The
problem only arises on certain switches. Therefore, a module parameter
has been added to allow enabling crossover detection if needed. The
default will be set to disabled.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes an issue seen with the realtek 8201 phy. This phy has a
problem with crossover detection and it needs to be disabled. The
problem only arises on certain switches. Therefore, a module parameter
has been added to allow enabling crossover detection if needed. The
default will be set to disabled.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: new backoff implementation</title>
<updated>2008-04-25T06:08:53+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2008-04-18T20:50:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=a433686c73bf63242475ef7e611114f43dd06581'/>
<id>a433686c73bf63242475ef7e611114f43dd06581</id>
<content type='text'>
This patch adds support for a new backoff algorithm for half duplex supported
in newer hardware.  The old method is will be designated as legacy mode.

Re-seeding random values for the backoff algorithms are performed when a
transmit has failed due to a maximum retry count (1 to 15, where max is
considered the wraparound case of 0).

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds support for a new backoff algorithm for half duplex supported
in newer hardware.  The old method is will be designated as legacy mode.

Re-seeding random values for the backoff algorithms are performed when a
transmit has failed due to a maximum retry count (1 to 15, where max is
considered the wraparound case of 0).

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[netdrvr] forcedeth: internal simplifications; changelog removal</title>
<updated>2008-04-17T19:31:33+00:00</updated>
<author>
<name>Jeff Garzik</name>
<email>jeff@garzik.org</email>
</author>
<published>2007-10-16T05:40:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=36b30ea940bb88d88c90698e0e3d97a805ab5856'/>
<id>36b30ea940bb88d88c90698e0e3d97a805ab5856</id>
<content type='text'>
* remove changelog from source; its kept in git repository

* consolidate descriptor version tests using nv_optimized()

* consolidate NIC DMA start, stop and drain into
  nv_start_txrx(), nv_stop_txrx(), nv_drain_txrx()

Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* remove changelog from source; its kept in git repository

* consolidate descriptor version tests using nv_optimized()

* consolidate NIC DMA start, stop and drain into
  nv_start_txrx(), nv_stop_txrx(), nv_drain_txrx()

Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2008-04-14T09:30:23+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-04-14T09:30:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=df39e8ba56a788733d369068c7319e04b1da3cd5'/>
<id>df39e8ba56a788733d369068c7319e04b1da3cd5</id>
<content type='text'>
Conflicts:

	drivers/net/ehea/ehea_main.c
	drivers/net/wireless/iwlwifi/Kconfig
	drivers/net/wireless/rt2x00/rt61pci.c
	net/ipv4/inet_timewait_sock.c
	net/ipv6/raw.c
	net/mac80211/ieee80211_sta.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:

	drivers/net/ehea/ehea_main.c
	drivers/net/wireless/iwlwifi/Kconfig
	drivers/net/wireless/rt2x00/rt61pci.c
	net/ipv4/inet_timewait_sock.c
	net/ipv6/raw.c
	net/mac80211/ieee80211_sta.c
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: mac address fix</title>
<updated>2008-04-12T08:38:12+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2008-04-11T04:30:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=a376e79c6079c2ba6c5fadb0e85a3bb7e465ad89'/>
<id>a376e79c6079c2ba6c5fadb0e85a3bb7e465ad89</id>
<content type='text'>
This critical patch fixes a mac address issue recently introduced.  If the
device's mac address was in correct order and the flag
NVREG_TRANSMITPOLL_MAC_ADDR_REV was set, during nv_remove the flag would get
cleared.  During next load, the mac address would get reversed because the
flag is missing.

As it has been indicated previously, the flag is cleared across a low power
transition.  Therefore, the driver should set the mac address back into the
reversed order when clearing the flag.

Also, the driver should set back the flag after a low power transition to
protect against kexec command calling nv_probe a second time.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Cc: "Yinghai Lu" &lt;yhlu.kernel@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This critical patch fixes a mac address issue recently introduced.  If the
device's mac address was in correct order and the flag
NVREG_TRANSMITPOLL_MAC_ADDR_REV was set, during nv_remove the flag would get
cleared.  During next load, the mac address would get reversed because the
flag is missing.

As it has been indicated previously, the flag is cleared across a low power
transition.  Therefore, the driver should set the mac address back into the
reversed order when clearing the flag.

Also, the driver should set back the flag after a low power transition to
protect against kexec command calling nv_probe a second time.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Cc: "Yinghai Lu" &lt;yhlu.kernel@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fix endian lossage in forcedeth</title>
<updated>2008-04-04T21:26:16+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@ZenIV.linux.org.uk</email>
</author>
<published>2008-03-26T05:57:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=30ecce908b944079181938e61ddbc00c8b23798c'/>
<id>30ecce908b944079181938e61ddbc00c8b23798c</id>
<content type='text'>
a) if you initialize something with le32_to_cpu(...), then |= it
with host-endian and feed to cpu_to_le32(), it's most definitely
*not* __le32.  As sparse would've told you...

b) the whole sequence is |= cpu_to_le32(host-endian constant)

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
a) if you initialize something with le32_to_cpu(...), then |= it
with host-endian and feed to cpu_to_le32(), it's most definitely
*not* __le32.  As sparse would've told you...

b) the whole sequence is |= cpu_to_le32(host-endian constant)

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2008-04-03T05:35:23+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-04-03T05:35:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a'/>
<id>e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a</id>
<content type='text'>
Conflicts:

	drivers/net/s2io.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:

	drivers/net/s2io.c
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: fix locking bug with netconsole</title>
<updated>2008-03-29T02:08:02+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2008-03-28T21:41:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=bd6ca6375b9f18f40e814f391d9d1abaa916bc72'/>
<id>bd6ca6375b9f18f40e814f391d9d1abaa916bc72</id>
<content type='text'>
While using netconsole on forcedeth, lockdep noticed the following locking
bug:

=================================
[ INFO: inconsistent lock state ]
2.6.24-rc6 #6
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
---------------------------------
inconsistent {softirq-on-W} -&gt; {in-softirq-W} usage.
udevd/719 [HC0[0]:SC1[1]:HE1:SE0] takes:
 (_xmit_ETHER){-+..}, at: [&lt;c043062e&gt;] dev_watchdog+0x1c/0xb9
{softirq-on-W} state was registered at:
  [&lt;c0147f67&gt;] mark_held_locks+0x4e/0x66
  [&lt;c014810e&gt;] trace_hardirqs_on+0xfe/0x136
  [&lt;c048ae63&gt;] _spin_unlock_irq+0x22/0x42
  [&lt;c02ec617&gt;] nv_start_xmit_optimized+0x347/0x37a
  [&lt;c042c80d&gt;] netpoll_send_skb+0xa4/0x147
  [&lt;c042d4a6&gt;] netpoll_send_udp+0x238/0x242
  [&lt;c02f44f6&gt;] write_msg+0x6d/0x9b
  [&lt;c012c129&gt;] __call_console_drivers+0x4e/0x5a
  [&lt;c012c18c&gt;] _call_console_drivers+0x57/0x5b
  [&lt;c012c2dd&gt;] release_console_sem+0x11c/0x1b9
  [&lt;c012caeb&gt;] register_console+0x1eb/0x1f3
  [&lt;c06ae673&gt;] init_netconsole+0x119/0x15f
  [&lt;c069149b&gt;] kernel_init+0x147/0x294
  [&lt;c01058cb&gt;] kernel_thread_helper+0x7/0x10
  [&lt;ffffffff&gt;] 0xffffffff
irq event stamp: 950
hardirqs last  enabled at (950): [&lt;c048ae63&gt;] _spin_unlock_irq+0x22/0x42
hardirqs last disabled at (949): [&lt;c048aaf7&gt;] _spin_lock_irq+0xc/0x38
softirqs last  enabled at (0): [&lt;c012a29c&gt;] copy_process+0x375/0x126d
softirqs last disabled at (947): [&lt;c0106d43&gt;] do_softirq+0x61/0xc6

other info that might help us debug this:
no locks held by udevd/719.

stack backtrace:
Pid: 719, comm: udevd Not tainted 2.6.24-rc6 #6
 [&lt;c0105c46&gt;] show_trace_log_lvl+0x12/0x25
 [&lt;c01063ec&gt;] show_trace+0xd/0x10
 [&lt;c010670c&gt;] dump_stack+0x57/0x5f
 [&lt;c0147505&gt;] print_usage_bug+0x10a/0x117
 [&lt;c0147c38&gt;] mark_lock+0x121/0x402
 [&lt;c01488b6&gt;] __lock_acquire+0x3d1/0xb64
 [&lt;c0149405&gt;] lock_acquire+0x4e/0x6a
 [&lt;c048a99b&gt;] _spin_lock+0x23/0x32
 [&lt;c043062e&gt;] dev_watchdog+0x1c/0xb9
 [&lt;c0133e4a&gt;] run_timer_softirq+0x133/0x193
 [&lt;c0130907&gt;] __do_softirq+0x78/0xed
 [&lt;c0106d43&gt;] do_softirq+0x61/0xc6
 =======================
eth1: link down

The fix is to disable/restore irqs instead of disable/enable.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Cc: Jeff Garzik &lt;jeff@garzik.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While using netconsole on forcedeth, lockdep noticed the following locking
bug:

=================================
[ INFO: inconsistent lock state ]
2.6.24-rc6 #6
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
---------------------------------
inconsistent {softirq-on-W} -&gt; {in-softirq-W} usage.
udevd/719 [HC0[0]:SC1[1]:HE1:SE0] takes:
 (_xmit_ETHER){-+..}, at: [&lt;c043062e&gt;] dev_watchdog+0x1c/0xb9
{softirq-on-W} state was registered at:
  [&lt;c0147f67&gt;] mark_held_locks+0x4e/0x66
  [&lt;c014810e&gt;] trace_hardirqs_on+0xfe/0x136
  [&lt;c048ae63&gt;] _spin_unlock_irq+0x22/0x42
  [&lt;c02ec617&gt;] nv_start_xmit_optimized+0x347/0x37a
  [&lt;c042c80d&gt;] netpoll_send_skb+0xa4/0x147
  [&lt;c042d4a6&gt;] netpoll_send_udp+0x238/0x242
  [&lt;c02f44f6&gt;] write_msg+0x6d/0x9b
  [&lt;c012c129&gt;] __call_console_drivers+0x4e/0x5a
  [&lt;c012c18c&gt;] _call_console_drivers+0x57/0x5b
  [&lt;c012c2dd&gt;] release_console_sem+0x11c/0x1b9
  [&lt;c012caeb&gt;] register_console+0x1eb/0x1f3
  [&lt;c06ae673&gt;] init_netconsole+0x119/0x15f
  [&lt;c069149b&gt;] kernel_init+0x147/0x294
  [&lt;c01058cb&gt;] kernel_thread_helper+0x7/0x10
  [&lt;ffffffff&gt;] 0xffffffff
irq event stamp: 950
hardirqs last  enabled at (950): [&lt;c048ae63&gt;] _spin_unlock_irq+0x22/0x42
hardirqs last disabled at (949): [&lt;c048aaf7&gt;] _spin_lock_irq+0xc/0x38
softirqs last  enabled at (0): [&lt;c012a29c&gt;] copy_process+0x375/0x126d
softirqs last disabled at (947): [&lt;c0106d43&gt;] do_softirq+0x61/0xc6

other info that might help us debug this:
no locks held by udevd/719.

stack backtrace:
Pid: 719, comm: udevd Not tainted 2.6.24-rc6 #6
 [&lt;c0105c46&gt;] show_trace_log_lvl+0x12/0x25
 [&lt;c01063ec&gt;] show_trace+0xd/0x10
 [&lt;c010670c&gt;] dump_stack+0x57/0x5f
 [&lt;c0147505&gt;] print_usage_bug+0x10a/0x117
 [&lt;c0147c38&gt;] mark_lock+0x121/0x402
 [&lt;c01488b6&gt;] __lock_acquire+0x3d1/0xb64
 [&lt;c0149405&gt;] lock_acquire+0x4e/0x6a
 [&lt;c048a99b&gt;] _spin_lock+0x23/0x32
 [&lt;c043062e&gt;] dev_watchdog+0x1c/0xb9
 [&lt;c0133e4a&gt;] run_timer_softirq+0x133/0x193
 [&lt;c0130907&gt;] __do_softirq+0x78/0xed
 [&lt;c0106d43&gt;] do_softirq+0x61/0xc6
 =======================
eth1: link down

The fix is to disable/restore irqs instead of disable/enable.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Cc: Jeff Garzik &lt;jeff@garzik.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
