<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net/wireless/rt2x00/rt2800usb.c, branch v3.2.4</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>rt2800usb: Move ID out of unknown</title>
<updated>2012-01-12T19:29:18+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2011-12-27T18:22:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2289fb57dc2caea22e167bba67b0b52997bce28f'/>
<id>2289fb57dc2caea22e167bba67b0b52997bce28f</id>
<content type='text'>
commit 3f81f8f1524ccca24df1029b0cf825ecef5e5cdc upstream.

Testing on the openSUSE wireless forum has shown that a Linksys
WUSB54GC v3 with USB ID 1737:0077 works with rt2800usb when the ID is
written to /sys/.../new_id. This ID can therefore be moved out of UNKNOWN.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Acked-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.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 3f81f8f1524ccca24df1029b0cf825ecef5e5cdc upstream.

Testing on the openSUSE wireless forum has shown that a Linksys
WUSB54GC v3 with USB ID 1737:0077 works with rt2800usb when the ID is
written to /sys/.../new_id. This ID can therefore be moved out of UNKNOWN.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Acked-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.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>rt2x00: Add USB device ID of Buffalo WLI-UC-GNHP.</title>
<updated>2011-11-15T15:02:56+00:00</updated>
<author>
<name>Gertjan van Wingerde</name>
<email>gwingerde@gmail.com</email>
</author>
<published>2011-11-12T18:10:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c18b7806e4f3373b2f296a65fb19251a3b49a532'/>
<id>c18b7806e4f3373b2f296a65fb19251a3b49a532</id>
<content type='text'>
This is reported to be an RT3070 based device.

Reported-by: Teika Kazura &lt;teika@lavabit.com&gt;
Signed-off-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is reported to be an RT3070 based device.

Reported-by: Teika Kazura &lt;teika@lavabit.com&gt;
Signed-off-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of github.com:davem330/net</title>
<updated>2011-09-22T07:23:13+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-09-22T07:23:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8decf868790b48a727d7e7ca164f2bcd3c1389c0'/>
<id>8decf868790b48a727d7e7ca164f2bcd3c1389c0</id>
<content type='text'>
Conflicts:
	MAINTAINERS
	drivers/net/Kconfig
	drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
	drivers/net/ethernet/broadcom/tg3.c
	drivers/net/wireless/iwlwifi/iwl-pci.c
	drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/wl12xx/main.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	MAINTAINERS
	drivers/net/Kconfig
	drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
	drivers/net/ethernet/broadcom/tg3.c
	drivers/net/wireless/iwlwifi/iwl-pci.c
	drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/wl12xx/main.c
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of ssh://infradead/~/public_git/wireless-next into for-davem</title>
<updated>2011-09-19T19:00:16+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2011-09-19T19:00:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b53d63ecce17c4ddf8636def9f6e8b865c3927f9'/>
<id>b53d63ecce17c4ddf8636def9f6e8b865c3927f9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Make use of sta_add/remove callbacks in rt2800</title>
<updated>2011-09-14T17:56:56+00:00</updated>
<author>
<name>Helmut Schaa</name>
<email>helmut.schaa@googlemail.com</email>
</author>
<published>2011-09-08T12:38:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a2b1328a23c57fbb9c51e6660a11049c35d151f9'/>
<id>a2b1328a23c57fbb9c51e6660a11049c35d151f9</id>
<content type='text'>
This allows us to assign a WCID to each STA even for STAs without
crypto key.

To achieve this search for an unused WCID in the HW WCID table and
assign it to the according STA. When configuring a pairwise key for this
STA we don't need to write the MAC address and BSSIDX anymore but just
update the crypto related fields in the WCID_ATTR table.

This has two advantages:

1) Setting a new key for an already available STA (PTK rekeying) is
slightly less expensive and should improve performance in situations
where a lot of rekeying happens (e.g. a huge number of stations and/or
a small rekeying interval)

2) The TXWI now gets a WCID assigned for unencrypted frames which will
be reflected in the corresponding tx status report. This should make tx
status reports in unencrypted AP mode more reliable as we can
distinguish between multiple key-less STAs.

Signed-off-by: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows us to assign a WCID to each STA even for STAs without
crypto key.

To achieve this search for an unused WCID in the HW WCID table and
assign it to the according STA. When configuring a pairwise key for this
STA we don't need to write the MAC address and BSSIDX anymore but just
update the crypto related fields in the WCID_ATTR table.

This has two advantages:

1) Setting a new key for an already available STA (PTK rekeying) is
slightly less expensive and should improve performance in situations
where a lot of rekeying happens (e.g. a huge number of stations and/or
a small rekeying interval)

2) The TXWI now gets a WCID assigned for unencrypted frames which will
be reflected in the corresponding tx status report. This should make tx
status reports in unencrypted AP mode more reliable as we can
distinguish between multiple key-less STAs.

Signed-off-by: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Minor optimizazion in txdone path</title>
<updated>2011-09-14T17:56:44+00:00</updated>
<author>
<name>Helmut Schaa</name>
<email>helmut.schaa@googlemail.com</email>
</author>
<published>2011-09-07T18:10:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=31937c423ed3a13613b3aa7459e7405dd428f2d8'/>
<id>31937c423ed3a13613b3aa7459e7405dd428f2d8</id>
<content type='text'>
We can save an indirect function call + some instructions for fetching
the actual function pointer by passing the driver specific txwi pointer
directly from rt2800pci/rt2800usb to rt2800lib instead of using the
rt2800_drv_get_txwi callback.

Signed-off-by: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Acked-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can save an indirect function call + some instructions for fetching
the actual function pointer by passing the driver specific txwi pointer
directly from rt2800pci/rt2800usb to rt2800lib instead of using the
rt2800_drv_get_txwi callback.

Signed-off-by: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Acked-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: fix crash in rt2800usb_get_txwi</title>
<updated>2011-08-11T18:34:37+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2011-08-10T13:32:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=674db1344443204b6ce3293f2df8fd1b7665deea'/>
<id>674db1344443204b6ce3293f2df8fd1b7665deea</id>
<content type='text'>
Patch should fix this oops:

BUG: unable to handle kernel NULL pointer dereference at 000000a0
IP: [&lt;f81b30c9&gt;] rt2800usb_get_txwi+0x19/0x70 [rt2800usb]
*pdpt = 0000000000000000 *pde = f000ff53f000ff53
Oops: 0000 [#1] SMP
Pid: 198, comm: kworker/u:3 Tainted: G        W   3.0.0-wl+ #9 LENOVO 6369CTO/6369CTO
EIP: 0060:[&lt;f81b30c9&gt;] EFLAGS: 00010283 CPU: 1
EIP is at rt2800usb_get_txwi+0x19/0x70 [rt2800usb]
EAX: 00000000 EBX: f465e140 ECX: f4494960 EDX: ef24c5f8
ESI: 810f21f5 EDI: f1da9960 EBP: f4581e80 ESP: f4581e70
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process kworker/u:3 (pid: 198, ti=f4580000 task=f4494960 task.ti=f4580000)
Call Trace:
 [&lt;f804790f&gt;] rt2800_txdone_entry+0x2f/0xf0 [rt2800lib]
 [&lt;c045110d&gt;] ? warn_slowpath_common+0x7d/0xa0
 [&lt;f81b3a38&gt;] ? rt2800usb_work_txdone+0x288/0x360 [rt2800usb]
 [&lt;f81b3a38&gt;] ? rt2800usb_work_txdone+0x288/0x360 [rt2800usb]
 [&lt;f81b3a13&gt;] rt2800usb_work_txdone+0x263/0x360 [rt2800usb]
 [&lt;c046a8d6&gt;] process_one_work+0x186/0x440
 [&lt;c046a85a&gt;] ? process_one_work+0x10a/0x440
 [&lt;f81b37b0&gt;] ? rt2800usb_probe_hw+0x120/0x120 [rt2800usb]
 [&lt;c046c283&gt;] worker_thread+0x133/0x310
 [&lt;c04885db&gt;] ? trace_hardirqs_on+0xb/0x10
 [&lt;c046c150&gt;] ? manage_workers+0x1e0/0x1e0
 [&lt;c047054c&gt;] kthread+0x7c/0x90
 [&lt;c04704d0&gt;] ? __init_kthread_worker+0x60/0x60
 [&lt;c0826b42&gt;] kernel_thread_helper+0x6/0x1

Oops might happen because we check rt2x00queue_empty(queue) twice,
but this condition can change and we can process entry in
rt2800_txdone_entry(), which was already processed by
rt2800usb_txdone_entry_check() -&gt; rt2x00lib_txdone_noinfo() and
has nullify entry-&gt;skb .

Reported-by: Justin Piszcz &lt;jpiszcz@lucidpixels.com&gt;
Cc: stable@kernel.org
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Patch should fix this oops:

BUG: unable to handle kernel NULL pointer dereference at 000000a0
IP: [&lt;f81b30c9&gt;] rt2800usb_get_txwi+0x19/0x70 [rt2800usb]
*pdpt = 0000000000000000 *pde = f000ff53f000ff53
Oops: 0000 [#1] SMP
Pid: 198, comm: kworker/u:3 Tainted: G        W   3.0.0-wl+ #9 LENOVO 6369CTO/6369CTO
EIP: 0060:[&lt;f81b30c9&gt;] EFLAGS: 00010283 CPU: 1
EIP is at rt2800usb_get_txwi+0x19/0x70 [rt2800usb]
EAX: 00000000 EBX: f465e140 ECX: f4494960 EDX: ef24c5f8
ESI: 810f21f5 EDI: f1da9960 EBP: f4581e80 ESP: f4581e70
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process kworker/u:3 (pid: 198, ti=f4580000 task=f4494960 task.ti=f4580000)
Call Trace:
 [&lt;f804790f&gt;] rt2800_txdone_entry+0x2f/0xf0 [rt2800lib]
 [&lt;c045110d&gt;] ? warn_slowpath_common+0x7d/0xa0
 [&lt;f81b3a38&gt;] ? rt2800usb_work_txdone+0x288/0x360 [rt2800usb]
 [&lt;f81b3a38&gt;] ? rt2800usb_work_txdone+0x288/0x360 [rt2800usb]
 [&lt;f81b3a13&gt;] rt2800usb_work_txdone+0x263/0x360 [rt2800usb]
 [&lt;c046a8d6&gt;] process_one_work+0x186/0x440
 [&lt;c046a85a&gt;] ? process_one_work+0x10a/0x440
 [&lt;f81b37b0&gt;] ? rt2800usb_probe_hw+0x120/0x120 [rt2800usb]
 [&lt;c046c283&gt;] worker_thread+0x133/0x310
 [&lt;c04885db&gt;] ? trace_hardirqs_on+0xb/0x10
 [&lt;c046c150&gt;] ? manage_workers+0x1e0/0x1e0
 [&lt;c047054c&gt;] kthread+0x7c/0x90
 [&lt;c04704d0&gt;] ? __init_kthread_worker+0x60/0x60
 [&lt;c0826b42&gt;] kernel_thread_helper+0x6/0x1

Oops might happen because we check rt2x00queue_empty(queue) twice,
but this condition can change and we can process entry in
rt2800_txdone_entry(), which was already processed by
rt2800usb_txdone_entry_check() -&gt; rt2x00lib_txdone_noinfo() and
has nullify entry-&gt;skb .

Reported-by: Justin Piszcz &lt;jpiszcz@lucidpixels.com&gt;
Cc: stable@kernel.org
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: fix crash in rt2800usb_write_tx_desc</title>
<updated>2011-08-11T18:34:36+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2011-08-10T13:32:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4b1bfb7d2d125af6653d6c2305356b2677f79dc6'/>
<id>4b1bfb7d2d125af6653d6c2305356b2677f79dc6</id>
<content type='text'>
Patch should fix this oops:

BUG: unable to handle kernel NULL pointer dereference at 000000a0
IP: [&lt;f8e06078&gt;] rt2800usb_write_tx_desc+0x18/0xc0 [rt2800usb]
*pdpt = 000000002408c001 *pde = 0000000024079067 *pte = 0000000000000000
Oops: 0000 [#1] SMP
EIP: 0060:[&lt;f8e06078&gt;] EFLAGS: 00010282 CPU: 0
EIP is at rt2800usb_write_tx_desc+0x18/0xc0 [rt2800usb]
EAX: 00000035 EBX: ef2bef10 ECX: 00000000 EDX: d40958a0
ESI: ef1865f8 EDI: ef1865f8 EBP: d4095878 ESP: d409585c
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Call Trace:
 [&lt;f8da5e85&gt;] rt2x00queue_write_tx_frame+0x155/0x300 [rt2x00lib]
 [&lt;f8da424c&gt;] rt2x00mac_tx+0x7c/0x370 [rt2x00lib]
 [&lt;c04882b2&gt;] ? mark_held_locks+0x62/0x90
 [&lt;c081f645&gt;] ? _raw_spin_unlock_irqrestore+0x35/0x60
 [&lt;c04884ba&gt;] ? trace_hardirqs_on_caller+0x5a/0x170
 [&lt;c04885db&gt;] ? trace_hardirqs_on+0xb/0x10
 [&lt;f8d618ac&gt;] __ieee80211_tx+0x5c/0x1e0 [mac80211]
 [&lt;f8d631fc&gt;] ieee80211_tx+0xbc/0xe0 [mac80211]
 [&lt;f8d63163&gt;] ? ieee80211_tx+0x23/0xe0 [mac80211]
 [&lt;f8d632e1&gt;] ieee80211_xmit+0xc1/0x200 [mac80211]
 [&lt;f8d63220&gt;] ? ieee80211_tx+0xe0/0xe0 [mac80211]
 [&lt;c0487d45&gt;] ? lock_release_holdtime+0x35/0x1b0
 [&lt;f8d63986&gt;] ? ieee80211_subif_start_xmit+0x446/0x5f0 [mac80211]
 [&lt;f8d637dd&gt;] ieee80211_subif_start_xmit+0x29d/0x5f0 [mac80211]
 [&lt;f8d63924&gt;] ? ieee80211_subif_start_xmit+0x3e4/0x5f0 [mac80211]
 [&lt;c0760188&gt;] ? sock_setsockopt+0x6a8/0x6f0
 [&lt;c0760000&gt;] ? sock_setsockopt+0x520/0x6f0
 [&lt;c076daef&gt;] dev_hard_start_xmit+0x2ef/0x650

Oops might happen because we perform parallel putting new entries in a
queue (rt2x00queue_write_tx_frame()) and removing entries after
finishing transmitting (rt2800usb_work_txdone()). There are cases when
_txdone may process an entry that was not fully send and nullify
entry-&gt;skb .

To fix check in _txdone if entry has flags that indicate pending
transmission and wait until flags get cleared.

Reported-by: Justin Piszcz &lt;jpiszcz@lucidpixels.com&gt;
Cc: stable@kernel.org
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Patch should fix this oops:

BUG: unable to handle kernel NULL pointer dereference at 000000a0
IP: [&lt;f8e06078&gt;] rt2800usb_write_tx_desc+0x18/0xc0 [rt2800usb]
*pdpt = 000000002408c001 *pde = 0000000024079067 *pte = 0000000000000000
Oops: 0000 [#1] SMP
EIP: 0060:[&lt;f8e06078&gt;] EFLAGS: 00010282 CPU: 0
EIP is at rt2800usb_write_tx_desc+0x18/0xc0 [rt2800usb]
EAX: 00000035 EBX: ef2bef10 ECX: 00000000 EDX: d40958a0
ESI: ef1865f8 EDI: ef1865f8 EBP: d4095878 ESP: d409585c
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Call Trace:
 [&lt;f8da5e85&gt;] rt2x00queue_write_tx_frame+0x155/0x300 [rt2x00lib]
 [&lt;f8da424c&gt;] rt2x00mac_tx+0x7c/0x370 [rt2x00lib]
 [&lt;c04882b2&gt;] ? mark_held_locks+0x62/0x90
 [&lt;c081f645&gt;] ? _raw_spin_unlock_irqrestore+0x35/0x60
 [&lt;c04884ba&gt;] ? trace_hardirqs_on_caller+0x5a/0x170
 [&lt;c04885db&gt;] ? trace_hardirqs_on+0xb/0x10
 [&lt;f8d618ac&gt;] __ieee80211_tx+0x5c/0x1e0 [mac80211]
 [&lt;f8d631fc&gt;] ieee80211_tx+0xbc/0xe0 [mac80211]
 [&lt;f8d63163&gt;] ? ieee80211_tx+0x23/0xe0 [mac80211]
 [&lt;f8d632e1&gt;] ieee80211_xmit+0xc1/0x200 [mac80211]
 [&lt;f8d63220&gt;] ? ieee80211_tx+0xe0/0xe0 [mac80211]
 [&lt;c0487d45&gt;] ? lock_release_holdtime+0x35/0x1b0
 [&lt;f8d63986&gt;] ? ieee80211_subif_start_xmit+0x446/0x5f0 [mac80211]
 [&lt;f8d637dd&gt;] ieee80211_subif_start_xmit+0x29d/0x5f0 [mac80211]
 [&lt;f8d63924&gt;] ? ieee80211_subif_start_xmit+0x3e4/0x5f0 [mac80211]
 [&lt;c0760188&gt;] ? sock_setsockopt+0x6a8/0x6f0
 [&lt;c0760000&gt;] ? sock_setsockopt+0x520/0x6f0
 [&lt;c076daef&gt;] dev_hard_start_xmit+0x2ef/0x650

Oops might happen because we perform parallel putting new entries in a
queue (rt2x00queue_write_tx_frame()) and removing entries after
finishing transmitting (rt2800usb_work_txdone()). There are cases when
_txdone may process an entry that was not fully send and nullify
entry-&gt;skb .

To fix check in _txdone if entry has flags that indicate pending
transmission and wait until flags get cleared.

Reported-by: Justin Piszcz &lt;jpiszcz@lucidpixels.com&gt;
Cc: stable@kernel.org
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Add rt2870 device id for Dvico usb key</title>
<updated>2011-08-09T20:11:33+00:00</updated>
<author>
<name>Anthony Bourguignon</name>
<email>contact+kernel@toniob.net</email>
</author>
<published>2011-08-05T05:46:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=276b02e2a0ada2e0196852c312560ffdabcebddc'/>
<id>276b02e2a0ada2e0196852c312560ffdabcebddc</id>
<content type='text'>
This patch add a device id for the wifi usb keys shiped by DVICO with
some of their tvix hardware.

Signed-off-by: Anthony Bourguignon &lt;contact+kernel@toniob.net&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch add a device id for the wifi usb keys shiped by DVICO with
some of their tvix hardware.

Signed-off-by: Anthony Bourguignon &lt;contact+kernel@toniob.net&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2800usb: Add new device ID for Belkin</title>
<updated>2011-07-11T19:02:21+00:00</updated>
<author>
<name>Eduardo Bacchi Kienetz</name>
<email>eduardo@kienetz.com</email>
</author>
<published>2011-07-10T15:05:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=43bf8c245237b8309153aa39d4e8f1586cf56af0'/>
<id>43bf8c245237b8309153aa39d4e8f1586cf56af0</id>
<content type='text'>
Belkin's Connect N150 Wireless USB Adapter, model F7D1101 version 2, uses ID 0x945b.
Chipset info: rt: 3390, rf: 000b, rev: 3213.
I have just bought one, which started to work perfectly after the ID was added through this patch.

Signed-off-by: Eduardo Bacchi Kienetz &lt;eduardo@kienetz.com&gt;
Acked-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Belkin's Connect N150 Wireless USB Adapter, model F7D1101 version 2, uses ID 0x945b.
Chipset info: rt: 3390, rf: 000b, rev: 3213.
I have just bought one, which started to work perfectly after the ID was added through this patch.

Signed-off-by: Eduardo Bacchi Kienetz &lt;eduardo@kienetz.com&gt;
Acked-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
