<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net, branch v2.6.27.38</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>net: Fix wrong sizeof</title>
<updated>2009-10-12T18:32:48+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2009-10-02T16:55:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0ee31b391059a1e8d46df0afe59b345f425f1224'/>
<id>0ee31b391059a1e8d46df0afe59b345f425f1224</id>
<content type='text'>
commit b607bd900051efc3308c4edc65dd98b34b230021 upstream.

Which is why I have always preferred sizeof(struct foo) over
sizeof(var).

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Acked-by: Randy Dunlap &lt;rdunlap@xenotime.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&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 b607bd900051efc3308c4edc65dd98b34b230021 upstream.

Which is why I have always preferred sizeof(struct foo) over
sizeof(var).

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Acked-by: Randy Dunlap &lt;rdunlap@xenotime.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>pcnet_cs: Fix misuse of the equality operator.</title>
<updated>2009-10-05T15:11:44+00:00</updated>
<author>
<name>Cord Walter</name>
<email>qord@cwalter.net</email>
</author>
<published>2009-02-03T23:14:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=54cd9c84498433f1800ad47445428d3e33d75188'/>
<id>54cd9c84498433f1800ad47445428d3e33d75188</id>
<content type='text'>
commit a9d3a146923d374b945aa388dc884df69564a818 upstream.

Signed-off-by: Cord Walter &lt;qord@cwalter.net&gt;
Signed-off-by: Komuro &lt;komurojun-mbn@nifty.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Christoph Biedl &lt;linux-kernel.bfrz@manchmal.in-ulm.de&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 a9d3a146923d374b945aa388dc884df69564a818 upstream.

Signed-off-by: Cord Walter &lt;qord@cwalter.net&gt;
Signed-off-by: Komuro &lt;komurojun-mbn@nifty.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Christoph Biedl &lt;linux-kernel.bfrz@manchmal.in-ulm.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>enc28j60: fix RX buffer overflow</title>
<updated>2009-10-05T15:11:43+00:00</updated>
<author>
<name>Baruch Siach</name>
<email>baruch@tkos.co.il</email>
</author>
<published>2009-01-05T00:23:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=52ccbcd1bcbed712bb586c3c17164fe326e89f1a'/>
<id>52ccbcd1bcbed712bb586c3c17164fe326e89f1a</id>
<content type='text'>
commit 22692018b93f0782cda5a843cecfffda1854eb8d upstream.

The enc28j60 driver doesn't check whether the length of the packet as reported
by the hardware fits into the preallocated buffer. When stressed, the hardware
may report insanely large packets even tough the "Receive OK" bit is set. Fix
this.

Signed-off-by: Baruch Siach &lt;baruch@tkos.co.il&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&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 22692018b93f0782cda5a843cecfffda1854eb8d upstream.

The enc28j60 driver doesn't check whether the length of the packet as reported
by the hardware fits into the preallocated buffer. When stressed, the hardware
may report insanely large packets even tough the "Receive OK" bit is set. Fix
this.

Signed-off-by: Baruch Siach &lt;baruch@tkos.co.il&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>p54usb: add Zcomax XG-705A usbid</title>
<updated>2009-10-05T15:11:41+00:00</updated>
<author>
<name>Christian Lamparter</name>
<email>chunkeey@googlemail.com</email>
</author>
<published>2009-09-14T21:08:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e6edca0908edee83e00c90a904c5ecaf9d0e5404'/>
<id>e6edca0908edee83e00c90a904c5ecaf9d0e5404</id>
<content type='text'>
commit f7f71173ea69d4dabf166533beffa9294090b7ef upstream.

This patch adds a new usbid for Zcomax XG-705A to the device table.

Reported-by: Jari Jaakola &lt;jari.jaakola@gmail.com&gt;
Signed-off-by: Christian Lamparter &lt;chunkeey@googlemail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.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 f7f71173ea69d4dabf166533beffa9294090b7ef upstream.

This patch adds a new usbid for Zcomax XG-705A to the device table.

Reported-by: Jari Jaakola &lt;jari.jaakola@gmail.com&gt;
Signed-off-by: Christian Lamparter &lt;chunkeey@googlemail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>E100: fix interaction with swiotlb on X86.</title>
<updated>2009-09-15T17:37:19+00:00</updated>
<author>
<name>Krzysztof Hałasa</name>
<email>khc@pm.waw.pl</email>
</author>
<published>2009-08-24T02:02:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=832b524a136e7306f66a632a42dbc86fd41b2f3c'/>
<id>832b524a136e7306f66a632a42dbc86fd41b2f3c</id>
<content type='text'>
[ Upstream commit 6ff9c2e7fa8ca63a575792534b63c5092099c286 ]

E100 places it's RX packet descriptors inside skb-&gt;data and uses them
with bidirectional streaming DMA mapping. Data in descriptors is
accessed simultaneously by the chip (writing status and size when
a packet is received) and CPU (reading to check if the packet was
received). This isn't a valid usage of PCI DMA API, which requires use
of the coherent (consistent) memory for such purpose. Unfortunately e100
chips working in "simplified" RX mode have to store received data
directly after the descriptor. Fixing the driver to conform to the API
would require using unsupported "flexible" RX mode or receiving data
into a coherent memory and using CPU to copy it to network buffers.

This patch, while not yet making the driver conform to the PCI DMA API,
allows it to work correctly on X86 with swiotlb (while not breaking
other architectures).

Signed-off-by: Krzysztof Hałasa &lt;khc@pm.waw.pl&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&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>
[ Upstream commit 6ff9c2e7fa8ca63a575792534b63c5092099c286 ]

E100 places it's RX packet descriptors inside skb-&gt;data and uses them
with bidirectional streaming DMA mapping. Data in descriptors is
accessed simultaneously by the chip (writing status and size when
a packet is received) and CPU (reading to check if the packet was
received). This isn't a valid usage of PCI DMA API, which requires use
of the coherent (consistent) memory for such purpose. Unfortunately e100
chips working in "simplified" RX mode have to store received data
directly after the descriptor. Fixing the driver to conform to the API
would require using unsupported "flexible" RX mode or receiving data
into a coherent memory and using CPU to copy it to network buffers.

This patch, while not yet making the driver conform to the PCI DMA API,
allows it to work correctly on X86 with swiotlb (while not breaking
other architectures).

Signed-off-by: Krzysztof Hałasa &lt;khc@pm.waw.pl&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ehea: Fix napi list corruption on ifconfig down</title>
<updated>2009-09-09T03:16:54+00:00</updated>
<author>
<name>Hannes Hering</name>
<email>hering2@de.ibm.com</email>
</author>
<published>2009-08-04T18:48:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d45bb9161000683a0f0e10dbca21a3a6f453a6e1'/>
<id>d45bb9161000683a0f0e10dbca21a3a6f453a6e1</id>
<content type='text'>
commit 357eb46d8f275b4e8484541234ea3ba06065e258 upstream.

This patch fixes the napi list handling when an ehea interface is shut
down to avoid corruption of the napi list.

Signed-off-by: Hannes Hering &lt;hering2@de.ibm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&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 357eb46d8f275b4e8484541234ea3ba06065e258 upstream.

This patch fixes the napi list handling when an ehea interface is shut
down to avoid corruption of the napi list.

Signed-off-by: Hannes Hering &lt;hering2@de.ibm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>asix: new device ids</title>
<updated>2009-08-16T21:27:08+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@suse.de</email>
</author>
<published>2009-02-25T07:52:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=32c987dd4d271c3ec49da10a07ce33aaa76721ca'/>
<id>32c987dd4d271c3ec49da10a07ce33aaa76721ca</id>
<content type='text'>
commit fef7cc0893146550b286b13c0e6e914556142730 upstream.

This patch adds two new device ids to the asix driver.

One comes directly from the asix driver on their web site, the other was
reported by Armani Liao as needed for the MSI X320 to get the driver to
work properly for it.

Reported-by: Armani Liao &lt;aliao@novell.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&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>
commit fef7cc0893146550b286b13c0e6e914556142730 upstream.

This patch adds two new device ids to the asix driver.

One comes directly from the asix driver on their web site, the other was
reported by Armani Liao as needed for the MSI X320 to get the driver to
work properly for it.

Reported-by: Armani Liao &lt;aliao@novell.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines.</title>
<updated>2009-07-30T23:06:15+00:00</updated>
<author>
<name>Ralf Baechle</name>
<email>ralf@linux-mips.org</email>
</author>
<published>2009-07-28T20:59:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7793fe88d9be428873468ccec2f107b1dc1c0bc2'/>
<id>7793fe88d9be428873468ccec2f107b1dc1c0bc2</id>
<content type='text'>
[ Upstream commit adeab1afb7de89555c69aab5ca21300c14af6369 ]

Guido Trentalancia reports:

I am trying to use the kiss driver in the Linux kernel that is being
shipped with Fedora 10 but unfortunately I get the following oops:

mkiss: AX.25 Multikiss, Hans Albas PE1AYX
mkiss: ax0: crc mode is auto.
ADDRCONF(NETDEV_CHANGE): ax0: link becomes ready
------------[ cut here ]------------
WARNING: at kernel/softirq.c:77 __local_bh_disable+0x2f/0x83() (Not
tainted)
[...]
unloaded: microcode]
Pid: 0, comm: swapper Not tainted 2.6.27.25-170.2.72.fc10.i686 #1
 [&lt;c042ddfb&gt;] warn_on_slowpath+0x65/0x8b
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c04228b4&gt;] ? __enqueue_entity+0xe3/0xeb
 [&lt;c042431e&gt;] ? enqueue_entity+0x203/0x20b
 [&lt;c0424361&gt;] ? enqueue_task_fair+0x3b/0x3f
 [&lt;c041f88c&gt;] ? resched_task+0x3a/0x6e
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c06ab4e2&gt;] ? _spin_lock_bh+0xb/0x16
 [&lt;c043255b&gt;] __local_bh_disable+0x2f/0x83
 [&lt;c04325ba&gt;] local_bh_disable+0xb/0xd
 [&lt;c06ab4e2&gt;] _spin_lock_bh+0xb/0x16
 [&lt;f8b6f600&gt;] mkiss_receive_buf+0x2fb/0x3a6 [mkiss]
 [&lt;c0572a30&gt;] flush_to_ldisc+0xf7/0x198
 [&lt;c0572b12&gt;] tty_flip_buffer_push+0x41/0x51
 [&lt;f89477f2&gt;] ftdi_process_read+0x375/0x4ad [ftdi_sio]
 [&lt;f8947a5a&gt;] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio]
 [&lt;c05d4bec&gt;] usb_hcd_giveback_urb+0x63/0x93
 [&lt;c05ea290&gt;] uhci_giveback_urb+0xe5/0x15f
 [&lt;c05eaabf&gt;] uhci_scan_schedule+0x52e/0x767
 [&lt;c05f6288&gt;] ? psmouse_handle_byte+0xc/0xe5
 [&lt;c054df78&gt;] ? acpi_ev_gpe_detect+0xd6/0xe1
 [&lt;c05ec5b0&gt;] uhci_irq+0x110/0x125
 [&lt;c05d4834&gt;] usb_hcd_irq+0x40/0xa3
 [&lt;c0465313&gt;] handle_IRQ_event+0x2f/0x64
 [&lt;c046642b&gt;] handle_level_irq+0x74/0xbe
 [&lt;c04663b7&gt;] ? handle_level_irq+0x0/0xbe
 [&lt;c0406e6e&gt;] do_IRQ+0xc7/0xfe
 [&lt;c0405668&gt;] common_interrupt+0x28/0x30
 [&lt;c056821a&gt;] ? acpi_idle_enter_simple+0x162/0x19d
 [&lt;c0617f52&gt;] cpuidle_idle_call+0x60/0x92
 [&lt;c0403c61&gt;] cpu_idle+0x101/0x134
 [&lt;c069b1ba&gt;] rest_init+0x4e/0x50
 =======================
---[ end trace b7cc8076093467ad ]---
------------[ cut here ]------------
WARNING: at kernel/softirq.c:136 _local_bh_enable_ip+0x3d/0xc4()
[...]
Pid: 0, comm: swapper Tainted: G        W 2.6.27.25-170.2.72.fc10.i686
 [&lt;c042ddfb&gt;] warn_on_slowpath+0x65/0x8b
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c04228b4&gt;] ? __enqueue_entity+0xe3/0xeb
 [&lt;c042431e&gt;] ? enqueue_entity+0x203/0x20b
 [&lt;c0424361&gt;] ? enqueue_task_fair+0x3b/0x3f
 [&lt;c041f88c&gt;] ? resched_task+0x3a/0x6e
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c06ab4e2&gt;] ? _spin_lock_bh+0xb/0x16
 [&lt;f8b6f642&gt;] ? mkiss_receive_buf+0x33d/0x3a6 [mkiss]
 [&lt;c04325f9&gt;] _local_bh_enable_ip+0x3d/0xc4
 [&lt;c0432688&gt;] local_bh_enable_ip+0x8/0xa
 [&lt;c06ab54d&gt;] _spin_unlock_bh+0x11/0x13
 [&lt;f8b6f642&gt;] mkiss_receive_buf+0x33d/0x3a6 [mkiss]
 [&lt;c0572a30&gt;] flush_to_ldisc+0xf7/0x198
 [&lt;c0572b12&gt;] tty_flip_buffer_push+0x41/0x51
 [&lt;f89477f2&gt;] ftdi_process_read+0x375/0x4ad [ftdi_sio]
 [&lt;f8947a5a&gt;] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio]
 [&lt;c05d4bec&gt;] usb_hcd_giveback_urb+0x63/0x93
 [&lt;c05ea290&gt;] uhci_giveback_urb+0xe5/0x15f
 [&lt;c05eaabf&gt;] uhci_scan_schedule+0x52e/0x767
 [&lt;c05f6288&gt;] ? psmouse_handle_byte+0xc/0xe5
 [&lt;c054df78&gt;] ? acpi_ev_gpe_detect+0xd6/0xe1
 [&lt;c05ec5b0&gt;] uhci_irq+0x110/0x125
 [&lt;c05d4834&gt;] usb_hcd_irq+0x40/0xa3
 [&lt;c0465313&gt;] handle_IRQ_event+0x2f/0x64
 [&lt;c046642b&gt;] handle_level_irq+0x74/0xbe
 [&lt;c04663b7&gt;] ? handle_level_irq+0x0/0xbe
 [&lt;c0406e6e&gt;] do_IRQ+0xc7/0xfe
 [&lt;c0405668&gt;] common_interrupt+0x28/0x30
 [&lt;c056821a&gt;] ? acpi_idle_enter_simple+0x162/0x19d
 [&lt;c0617f52&gt;] cpuidle_idle_call+0x60/0x92
 [&lt;c0403c61&gt;] cpu_idle+0x101/0x134
 [&lt;c069b1ba&gt;] rest_init+0x4e/0x50
 =======================
---[ end trace b7cc8076093467ad ]---
mkiss: ax0: Trying crc-smack
mkiss: ax0: Trying crc-flexnet

The issue was, that the locking code in mkiss was assuming it was only
ever being called in process or bh context.  Fixed by converting the
involved locking code to use irq-safe locks.

Review of other networking line disciplines shows that 6pack, both sync
and async PPP and STRIP have similar issues.  The ppp_async one is the
most interesting one as it sorts out half of the issue as far back as
2004 in commit http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commitdiff;h=2996d8deaeddd01820691a872550dc0cfba0c37d

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Reported-by: Guido Trentalancia &lt;guido@trentalancia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&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>
[ Upstream commit adeab1afb7de89555c69aab5ca21300c14af6369 ]

Guido Trentalancia reports:

I am trying to use the kiss driver in the Linux kernel that is being
shipped with Fedora 10 but unfortunately I get the following oops:

mkiss: AX.25 Multikiss, Hans Albas PE1AYX
mkiss: ax0: crc mode is auto.
ADDRCONF(NETDEV_CHANGE): ax0: link becomes ready
------------[ cut here ]------------
WARNING: at kernel/softirq.c:77 __local_bh_disable+0x2f/0x83() (Not
tainted)
[...]
unloaded: microcode]
Pid: 0, comm: swapper Not tainted 2.6.27.25-170.2.72.fc10.i686 #1
 [&lt;c042ddfb&gt;] warn_on_slowpath+0x65/0x8b
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c04228b4&gt;] ? __enqueue_entity+0xe3/0xeb
 [&lt;c042431e&gt;] ? enqueue_entity+0x203/0x20b
 [&lt;c0424361&gt;] ? enqueue_task_fair+0x3b/0x3f
 [&lt;c041f88c&gt;] ? resched_task+0x3a/0x6e
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c06ab4e2&gt;] ? _spin_lock_bh+0xb/0x16
 [&lt;c043255b&gt;] __local_bh_disable+0x2f/0x83
 [&lt;c04325ba&gt;] local_bh_disable+0xb/0xd
 [&lt;c06ab4e2&gt;] _spin_lock_bh+0xb/0x16
 [&lt;f8b6f600&gt;] mkiss_receive_buf+0x2fb/0x3a6 [mkiss]
 [&lt;c0572a30&gt;] flush_to_ldisc+0xf7/0x198
 [&lt;c0572b12&gt;] tty_flip_buffer_push+0x41/0x51
 [&lt;f89477f2&gt;] ftdi_process_read+0x375/0x4ad [ftdi_sio]
 [&lt;f8947a5a&gt;] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio]
 [&lt;c05d4bec&gt;] usb_hcd_giveback_urb+0x63/0x93
 [&lt;c05ea290&gt;] uhci_giveback_urb+0xe5/0x15f
 [&lt;c05eaabf&gt;] uhci_scan_schedule+0x52e/0x767
 [&lt;c05f6288&gt;] ? psmouse_handle_byte+0xc/0xe5
 [&lt;c054df78&gt;] ? acpi_ev_gpe_detect+0xd6/0xe1
 [&lt;c05ec5b0&gt;] uhci_irq+0x110/0x125
 [&lt;c05d4834&gt;] usb_hcd_irq+0x40/0xa3
 [&lt;c0465313&gt;] handle_IRQ_event+0x2f/0x64
 [&lt;c046642b&gt;] handle_level_irq+0x74/0xbe
 [&lt;c04663b7&gt;] ? handle_level_irq+0x0/0xbe
 [&lt;c0406e6e&gt;] do_IRQ+0xc7/0xfe
 [&lt;c0405668&gt;] common_interrupt+0x28/0x30
 [&lt;c056821a&gt;] ? acpi_idle_enter_simple+0x162/0x19d
 [&lt;c0617f52&gt;] cpuidle_idle_call+0x60/0x92
 [&lt;c0403c61&gt;] cpu_idle+0x101/0x134
 [&lt;c069b1ba&gt;] rest_init+0x4e/0x50
 =======================
---[ end trace b7cc8076093467ad ]---
------------[ cut here ]------------
WARNING: at kernel/softirq.c:136 _local_bh_enable_ip+0x3d/0xc4()
[...]
Pid: 0, comm: swapper Tainted: G        W 2.6.27.25-170.2.72.fc10.i686
 [&lt;c042ddfb&gt;] warn_on_slowpath+0x65/0x8b
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c04228b4&gt;] ? __enqueue_entity+0xe3/0xeb
 [&lt;c042431e&gt;] ? enqueue_entity+0x203/0x20b
 [&lt;c0424361&gt;] ? enqueue_task_fair+0x3b/0x3f
 [&lt;c041f88c&gt;] ? resched_task+0x3a/0x6e
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c06ab4e2&gt;] ? _spin_lock_bh+0xb/0x16
 [&lt;f8b6f642&gt;] ? mkiss_receive_buf+0x33d/0x3a6 [mkiss]
 [&lt;c04325f9&gt;] _local_bh_enable_ip+0x3d/0xc4
 [&lt;c0432688&gt;] local_bh_enable_ip+0x8/0xa
 [&lt;c06ab54d&gt;] _spin_unlock_bh+0x11/0x13
 [&lt;f8b6f642&gt;] mkiss_receive_buf+0x33d/0x3a6 [mkiss]
 [&lt;c0572a30&gt;] flush_to_ldisc+0xf7/0x198
 [&lt;c0572b12&gt;] tty_flip_buffer_push+0x41/0x51
 [&lt;f89477f2&gt;] ftdi_process_read+0x375/0x4ad [ftdi_sio]
 [&lt;f8947a5a&gt;] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio]
 [&lt;c05d4bec&gt;] usb_hcd_giveback_urb+0x63/0x93
 [&lt;c05ea290&gt;] uhci_giveback_urb+0xe5/0x15f
 [&lt;c05eaabf&gt;] uhci_scan_schedule+0x52e/0x767
 [&lt;c05f6288&gt;] ? psmouse_handle_byte+0xc/0xe5
 [&lt;c054df78&gt;] ? acpi_ev_gpe_detect+0xd6/0xe1
 [&lt;c05ec5b0&gt;] uhci_irq+0x110/0x125
 [&lt;c05d4834&gt;] usb_hcd_irq+0x40/0xa3
 [&lt;c0465313&gt;] handle_IRQ_event+0x2f/0x64
 [&lt;c046642b&gt;] handle_level_irq+0x74/0xbe
 [&lt;c04663b7&gt;] ? handle_level_irq+0x0/0xbe
 [&lt;c0406e6e&gt;] do_IRQ+0xc7/0xfe
 [&lt;c0405668&gt;] common_interrupt+0x28/0x30
 [&lt;c056821a&gt;] ? acpi_idle_enter_simple+0x162/0x19d
 [&lt;c0617f52&gt;] cpuidle_idle_call+0x60/0x92
 [&lt;c0403c61&gt;] cpu_idle+0x101/0x134
 [&lt;c069b1ba&gt;] rest_init+0x4e/0x50
 =======================
---[ end trace b7cc8076093467ad ]---
mkiss: ax0: Trying crc-smack
mkiss: ax0: Trying crc-flexnet

The issue was, that the locking code in mkiss was assuming it was only
ever being called in process or bh context.  Fixed by converting the
involved locking code to use irq-safe locks.

Review of other networking line disciplines shows that 6pack, both sync
and async PPP and STRIP have similar issues.  The ppp_async one is the
most interesting one as it sorts out half of the issue as far back as
2004 in commit http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commitdiff;h=2996d8deaeddd01820691a872550dc0cfba0c37d

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Reported-by: Guido Trentalancia &lt;guido@trentalancia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>E100: work around the driver using streaming DMA mapping for RX descriptors.</title>
<updated>2009-07-30T23:06:14+00:00</updated>
<author>
<name>Krzysztof Halasa</name>
<email>khc@pm.waw.pl</email>
</author>
<published>2009-07-14T11:01:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4662e31e5b9ae9ad4e0422c97ed9c757ac6d678f'/>
<id>4662e31e5b9ae9ad4e0422c97ed9c757ac6d678f</id>
<content type='text'>
[ Upstream commit 303d67c288319768b19ed8dbed429fef7eb7c275 ]

E100 places it's RX packet descriptors inside skb-&gt;data and uses them
with bidirectional streaming DMA mapping. Unfortunately it fails to
transfer skb-&gt;data ownership to the device after it reads the
descriptor's status, breaking on non-coherent (e.g., ARM) platforms.

This have to be converted to use coherent memory for the descriptors.

Signed-off-by: Krzysztof Halasa &lt;khc@pm.waw.pl&gt;
Acked-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&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>
[ Upstream commit 303d67c288319768b19ed8dbed429fef7eb7c275 ]

E100 places it's RX packet descriptors inside skb-&gt;data and uses them
with bidirectional streaming DMA mapping. Unfortunately it fails to
transfer skb-&gt;data ownership to the device after it reads the
descriptor's status, breaking on non-coherent (e.g., ARM) platforms.

This have to be converted to use coherent memory for the descriptors.

Signed-off-by: Krzysztof Halasa &lt;khc@pm.waw.pl&gt;
Acked-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>r8169: avoid losing MSI interrupts</title>
<updated>2009-07-30T23:06:14+00:00</updated>
<author>
<name>David Dillow</name>
<email>dave@thedillows.org</email>
</author>
<published>2009-07-22T16:17:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2fe2c6bb0303064bde3b8ca0fd90c4367868486e'/>
<id>2fe2c6bb0303064bde3b8ca0fd90c4367868486e</id>
<content type='text'>
[ Upstream commit f11a377b3f4e897d11f0e8d1fc688667e2f19708 ]

The 8169 chip only generates MSI interrupts when all enabled event
sources are quiescent and one or more sources transition to active. If
not all of the active events are acknowledged, or a new event becomes
active while the existing ones are cleared in the handler, we will not
see a new interrupt.

The current interrupt handler masks off the Rx and Tx events once the
NAPI handler has been scheduled, which opens a race window in which we
can get another Rx or Tx event and never ACK'ing it, stopping all
activity until the link is reset (ifconfig down/up). Fix this by always
ACK'ing all event sources, and loop in the handler until we have all
sources quiescent.

Signed-off-by: David Dillow &lt;dave@thedillows.org&gt;
Tested-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&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>
[ Upstream commit f11a377b3f4e897d11f0e8d1fc688667e2f19708 ]

The 8169 chip only generates MSI interrupts when all enabled event
sources are quiescent and one or more sources transition to active. If
not all of the active events are acknowledged, or a new event becomes
active while the existing ones are cleared in the handler, we will not
see a new interrupt.

The current interrupt handler masks off the Rx and Tx events once the
NAPI handler has been scheduled, which opens a race window in which we
can get another Rx or Tx event and never ACK'ing it, stopping all
activity until the link is reset (ifconfig down/up). Fix this by always
ACK'ing all event sources, and loop in the handler until we have all
sources quiescent.

Signed-off-by: David Dillow &lt;dave@thedillows.org&gt;
Tested-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
</feed>
