<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net/forcedeth.c, branch v2.6.26-rc2</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>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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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>
<entry>
<title>forcedeth: Use round_jiffies for stats timer</title>
<updated>2008-03-26T04:18:51+00:00</updated>
<author>
<name>Daniel Drake</name>
<email>dsd@gentoo.org</email>
</author>
<published>2008-03-18T11:07:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bfebbb88eca12a01fff1fbee2b8e1a4e932b799b'/>
<id>bfebbb88eca12a01fff1fbee2b8e1a4e932b799b</id>
<content type='text'>
This timer doesn't need to run at precise times, so round it to a whole
second to decrease wakeups.

Signed-off-by: Daniel Drake &lt;dsd@gentoo.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>
This timer doesn't need to run at precise times, so round it to a whole
second to decrease wakeups.

Signed-off-by: Daniel Drake &lt;dsd@gentoo.org&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>forcedeth: limit tx to 16</title>
<updated>2008-03-17T12:11:07+00:00</updated>
<author>
<name>Ayaz Abdulla</name>
<email>aabdulla@nvidia.com</email>
</author>
<published>2008-03-10T19:58:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3b446c3e1592287dae117e03e61af0aa09adba6f'/>
<id>3b446c3e1592287dae117e03e61af0aa09adba6f</id>
<content type='text'>
This is a critical patch which adds a workaround for a HW bug. The patch
will limit the number of outstanding tx packets to 16. Otherwise, the HW
could send out packets with bad checksums.

The driver will still setup the tx packets into the ring, however, will
only set the Valid bit on 16 packets at a time.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a critical patch which adds a workaround for a HW bug. The patch
will limit the number of outstanding tx packets to 16. Otherwise, the HW
could send out packets with bad checksums.

The driver will still setup the tx packets into the ring, however, will
only set the Valid bit on 16 packets at a time.

Signed-off-by: Ayaz Abdulla &lt;aabdulla@nvidia.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
