<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net/wireless, branch v2.6.27.54</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>ath9k_hw: fix parsing of HT40 5 GHz CTLs</title>
<updated>2010-09-20T20:03:20+00:00</updated>
<author>
<name>Luis R. Rodriguez</name>
<email>lrodriguez@atheros.com</email>
</author>
<published>2010-08-30T23:26:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d14a2c2005c205bcd6742cac79dacd69436603b6'/>
<id>d14a2c2005c205bcd6742cac79dacd69436603b6</id>
<content type='text'>
commit 904879748d7439a6dabdc6be9aad983e216b027d upstream.

The 5 GHz CTL indexes were not being read for all hardware
devices due to the masking out through the CTL_MODE_M mask
being one bit too short. Without this the calibrated regulatory
maximum values were not being picked up when devices operate
on 5 GHz in HT40 mode. The final output power used for Atheros
devices is the minimum between the calibrated CTL values and
what CRDA provides.

Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.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 904879748d7439a6dabdc6be9aad983e216b027d upstream.

The 5 GHz CTL indexes were not being read for all hardware
devices due to the masking out through the CTL_MODE_M mask
being one bit too short. Without this the calibrated regulatory
maximum values were not being picked up when devices operate
on 5 GHz in HT40 mode. The final output power used for Atheros
devices is the minimum between the calibrated CTL values and
what CRDA provides.

Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.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>hostap: Protect against initialization interrupt</title>
<updated>2010-08-02T17:18:50+00:00</updated>
<author>
<name>Tim Gardner</name>
<email>tim.gardner@canonical.com</email>
</author>
<published>2010-06-08T17:33:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e75c279c6760282546dbc794b8368d6a8ff12c92'/>
<id>e75c279c6760282546dbc794b8368d6a8ff12c92</id>
<content type='text'>
commit d6a574ff6bfb842bdb98065da053881ff527be46 upstream.

Use an irq spinlock to hold off the IRQ handler until
enough early card init is complete such that the handler
can run without faulting.

Signed-off-by: Tim Gardner &lt;tim.gardner@canonical.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 d6a574ff6bfb842bdb98065da053881ff527be46 upstream.

Use an irq spinlock to hold off the IRQ handler until
enough early card init is complete such that the handler
can run without faulting.

Signed-off-by: Tim Gardner &lt;tim.gardner@canonical.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>Libertas: fix buffer overflow in lbs_get_essid()</title>
<updated>2010-01-06T23:17:07+00:00</updated>
<author>
<name>Daniel Mack</name>
<email>daniel@caiaq.de</email>
</author>
<published>2009-12-16T04:12:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d9b7ad9d124b0d3154bf0fe64ca5425827de498b'/>
<id>d9b7ad9d124b0d3154bf0fe64ca5425827de498b</id>
<content type='text'>
commit 45b241689179a6065384260242637cf21dabfb2d upstream.

The libertas driver copies the SSID buffer back to the wireless core and
appends a trailing NULL character for termination. This is

a) unnecessary because the buffer is allocated with kzalloc and is hence
   already NULLed when this function is called, and

b) for priv-&gt;curbssparams.ssid_len == 32, it writes back one byte too
   much which causes memory corruptions.

Fix this by removing the extra write.

Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Cc: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
Cc: Maithili Hinge &lt;maithili@marvell.com&gt;
Cc: Kiran Divekar &lt;dkiran@marvell.com&gt;
Cc: Michael Hirsch &lt;m.hirsch@raumfeld.com&gt;
Cc: netdev@vger.kernel.org
Cc: libertas-dev@lists.infradead.org
Cc: linux-wireless@lists.infradead.org
Acked-by: Holger Schurig &lt;holgerschurig@gmail.com&gt;
Acked-by: Dan Williams &lt;dcbw@redhat.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 45b241689179a6065384260242637cf21dabfb2d upstream.

The libertas driver copies the SSID buffer back to the wireless core and
appends a trailing NULL character for termination. This is

a) unnecessary because the buffer is allocated with kzalloc and is hence
   already NULLed when this function is called, and

b) for priv-&gt;curbssparams.ssid_len == 32, it writes back one byte too
   much which causes memory corruptions.

Fix this by removing the extra write.

Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Cc: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
Cc: Maithili Hinge &lt;maithili@marvell.com&gt;
Cc: Kiran Divekar &lt;dkiran@marvell.com&gt;
Cc: Michael Hirsch &lt;m.hirsch@raumfeld.com&gt;
Cc: netdev@vger.kernel.org
Cc: libertas-dev@lists.infradead.org
Cc: linux-wireless@lists.infradead.org
Acked-by: Holger Schurig &lt;holgerschurig@gmail.com&gt;
Acked-by: Dan Williams &lt;dcbw@redhat.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>ray_cs: Fix copy_from_user handling</title>
<updated>2009-11-10T00:52:15+00:00</updated>
<author>
<name>Alan Cox</name>
<email>alan@linux.intel.com</email>
</author>
<published>2009-10-27T15:35:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=466bf8f200f6586eff838566e6e40dbc448dd8e4'/>
<id>466bf8f200f6586eff838566e6e40dbc448dd8e4</id>
<content type='text'>
commit 575c9ed7798218dc923f319c0d78f0c25ca506b9 upstream.

I've not touched the other stuff here but the word "locking" comes to mind.

Signed-off-by: Alan Cox &lt;alan@linux.intel.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&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 575c9ed7798218dc923f319c0d78f0c25ca506b9 upstream.

I've not touched the other stuff here but the word "locking" comes to mind.

Signed-off-by: Alan Cox &lt;alan@linux.intel.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>libertas if_usb: Fix crash on 64-bit machines</title>
<updated>2009-11-10T00:52:10+00:00</updated>
<author>
<name>David Woodhouse</name>
<email>dwmw2@infradead.org</email>
</author>
<published>2009-10-30T17:45:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6e6276689ca89240c8faa575b64a36b356d7b8ab'/>
<id>6e6276689ca89240c8faa575b64a36b356d7b8ab</id>
<content type='text'>
commit e9024a059f2c17fb2bfab212ee9d31511d7b8e57 upstream.

On a 64-bit kernel, skb-&gt;tail is an offset, not a pointer. The libertas
usb driver passes it to usb_fill_bulk_urb() anyway, causing interesting
crashes. Fix that by using skb-&gt;data instead.

This highlights a problem with usb_fill_bulk_urb(). It doesn't notice
when dma_map_single() fails and return the error to its caller as it
should. In fact it _can't_ currently return the error, since it returns
void.

So this problem was showing up only at unmap time, after we'd already
suffered memory corruption by doing DMA to a bogus address.

Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&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 e9024a059f2c17fb2bfab212ee9d31511d7b8e57 upstream.

On a 64-bit kernel, skb-&gt;tail is an offset, not a pointer. The libertas
usb driver passes it to usb_fill_bulk_urb() anyway, causing interesting
crashes. Fix that by using skb-&gt;data instead.

This highlights a problem with usb_fill_bulk_urb(). It doesn't notice
when dma_map_single() fails and return the error to its caller as it
should. In fact it _can't_ currently return the error, since it returns
void.

So this problem was showing up only at unmap time, after we'd already
suffered memory corruption by doing DMA to a bogus address.

Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&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>b43: Fix Bugzilla #14181 and the bug from the previous 'fix'</title>
<updated>2009-11-10T00:51:53+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2009-10-16T15:18:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9a3e3d7cf51eeafaad9f90c7c1d8f0b97ed0687e'/>
<id>9a3e3d7cf51eeafaad9f90c7c1d8f0b97ed0687e</id>
<content type='text'>
commit d50bae33d1358b909ade05ae121d83d3a60ab63f upstream.

"b43: Fix PPC crash in rfkill polling on unload" fixed the bug reported
in Bugzilla No. 14181; however, it introduced a new bug. Whenever the
radio switch was turned off, it was necessary to unload and reload
the driver for it to recognize the switch again.

This patch fixes both the original bug in #14181 and the bug introduced by
the previous patch. It must be stated, however, that if there is a BCM4306/3
with an rfkill switch (not yet proven), then the driver will need an
unload/reload cycle to turn the device back on.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&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 d50bae33d1358b909ade05ae121d83d3a60ab63f upstream.

"b43: Fix PPC crash in rfkill polling on unload" fixed the bug reported
in Bugzilla No. 14181; however, it introduced a new bug. Whenever the
radio switch was turned off, it was necessary to unload and reload
the driver for it to recognize the switch again.

This patch fixes both the original bug in #14181 and the bug introduced by
the previous patch. It must be stated, however, that if there is a BCM4306/3
with an rfkill switch (not yet proven), then the driver will need an
unload/reload cycle to turn the device back on.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&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>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>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>rndis_wlan: fix initialization order for workqueue&amp;workers</title>
<updated>2009-05-08T21:54:36+00:00</updated>
<author>
<name>Jussi Kivilinna</name>
<email>jussi.kivilinna@mbnet.fi</email>
</author>
<published>2009-04-22T07:59:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a63a48e88c44100975b38a01de22c7fa17adbf85'/>
<id>a63a48e88c44100975b38a01de22c7fa17adbf85</id>
<content type='text'>
commit e805e4d0b53506dff4255a2792483f094e7fcd2c upstream.

rndis_wext_link_change() might be called from rndis_command() at
initialization stage and priv-&gt;workqueue/priv-&gt;work have not been
initialized yet. This causes invalid opcode at rndis_wext_bind on
some brands of bcm4320.

Fix by initializing workqueue/workers in rndis_wext_bind() before
rndis_command is used.

This bug has existed since 2.6.25, reported at:
	http://bugzilla.kernel.org/show_bug.cgi?id=12794

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@mbnet.fi&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 e805e4d0b53506dff4255a2792483f094e7fcd2c upstream.

rndis_wext_link_change() might be called from rndis_command() at
initialization stage and priv-&gt;workqueue/priv-&gt;work have not been
initialized yet. This causes invalid opcode at rndis_wext_bind on
some brands of bcm4320.

Fix by initializing workqueue/workers in rndis_wext_bind() before
rndis_command is used.

This bug has existed since 2.6.25, reported at:
	http://bugzilla.kernel.org/show_bug.cgi?id=12794

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@mbnet.fi&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>b43: Refresh RX poison on buffer recycling</title>
<updated>2009-05-08T21:54:34+00:00</updated>
<author>
<name>Michael Buesch</name>
<email>mb@bu3sch.de</email>
</author>
<published>2009-04-24T16:05:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ac37ac5e637cbf7b2f77cd89c9396ef3a569adf3'/>
<id>ac37ac5e637cbf7b2f77cd89c9396ef3a569adf3</id>
<content type='text'>
upstream commit: cf68636a9773aa97915497fe54fa4a51e3f08f3a

The RX buffer poison needs to be refreshed, if we recycle an RX buffer,
because it might be (partially) overwritten by some DMA operations.

Cc: stable@kernel.org
Cc: Francesco Gringoli &lt;francesco.gringoli@ing.unibs.it&gt;
Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&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: cf68636a9773aa97915497fe54fa4a51e3f08f3a

The RX buffer poison needs to be refreshed, if we recycle an RX buffer,
because it might be (partially) overwritten by some DMA operations.

Cc: stable@kernel.org
Cc: Francesco Gringoli &lt;francesco.gringoli@ing.unibs.it&gt;
Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
</feed>
