<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net/wireless/rt2x00, branch v2.6.35</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>rt2x00: Fix lockdep warning in rt2x00lib_probe_dev()</title>
<updated>2010-07-16T17:57:59+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>bebarino@gmail.com</email>
</author>
<published>2010-07-16T16:50:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9acd56d3f2a05191ee369cbdd8c37dd547aa19b8'/>
<id>9acd56d3f2a05191ee369cbdd8c37dd547aa19b8</id>
<content type='text'>
The rt2x00dev-&gt;intf_work workqueue is never initialized when a driver is
probed for a non-existent device (in this case rt2500usb). On such a
path we call rt2x00lib_remove_dev() to free any resources initialized
during the probe before we use INIT_WORK to initialize the workqueue.
This causes lockdep to get confused since the lock used in the workqueue
hasn't been initialized yet but is now being acquired during
cancel_work_sync() called by rt2x00lib_remove_dev().

Fix this by initializing the workqueue first before we attempt to probe
the device. This should make lockdep happy and avoid breaking any
assumptions about how the library cleans up after a probe fails.

phy0 -&gt; rt2x00lib_probe_dev: Error - Failed to allocate device.
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
Pid: 2027, comm: modprobe Not tainted 2.6.35-rc5+ #60
Call Trace:
 [&lt;ffffffff8105fe59&gt;] register_lock_class+0x152/0x31f
 [&lt;ffffffff81344a00&gt;] ? usb_control_msg+0xd5/0x111
 [&lt;ffffffff81061bde&gt;] __lock_acquire+0xce/0xcf4
 [&lt;ffffffff8105f6fd&gt;] ? trace_hardirqs_off+0xd/0xf
 [&lt;ffffffff81492aef&gt;] ?  _raw_spin_unlock_irqrestore+0x33/0x41
 [&lt;ffffffff810628d5&gt;] lock_acquire+0xd1/0xf7
 [&lt;ffffffff8104f037&gt;] ? __cancel_work_timer+0x99/0x17e
 [&lt;ffffffff8104f06e&gt;] __cancel_work_timer+0xd0/0x17e
 [&lt;ffffffff8104f037&gt;] ? __cancel_work_timer+0x99/0x17e
 [&lt;ffffffff8104f136&gt;] cancel_work_sync+0xb/0xd
 [&lt;ffffffffa0096675&gt;] rt2x00lib_remove_dev+0x25/0xb0 [rt2x00lib]
 [&lt;ffffffffa0096bf7&gt;] rt2x00lib_probe_dev+0x380/0x3ed [rt2x00lib]
 [&lt;ffffffff811d78a7&gt;] ? __raw_spin_lock_init+0x31/0x52
 [&lt;ffffffffa00bbd2c&gt;] ? T.676+0xe/0x10 [rt2x00usb]
 [&lt;ffffffffa00bbe4f&gt;] rt2x00usb_probe+0x121/0x15e [rt2x00usb]
 [&lt;ffffffff813468bd&gt;] usb_probe_interface+0x151/0x19e
 [&lt;ffffffff812ea08e&gt;] driver_probe_device+0xa7/0x136
 [&lt;ffffffff812ea167&gt;] __driver_attach+0x4a/0x66
 [&lt;ffffffff812ea11d&gt;] ? __driver_attach+0x0/0x66
 [&lt;ffffffff812e96ca&gt;] bus_for_each_dev+0x54/0x89
 [&lt;ffffffff812e9efd&gt;] driver_attach+0x19/0x1b
 [&lt;ffffffff812e9b64&gt;] bus_add_driver+0xb4/0x204
 [&lt;ffffffff812ea41b&gt;] driver_register+0x98/0x109
 [&lt;ffffffff813465dd&gt;] usb_register_driver+0xb2/0x173
 [&lt;ffffffffa00ca000&gt;] ? rt2500usb_init+0x0/0x20 [rt2500usb]
 [&lt;ffffffffa00ca01e&gt;] rt2500usb_init+0x1e/0x20 [rt2500usb]
 [&lt;ffffffff81000203&gt;] do_one_initcall+0x6d/0x17a
 [&lt;ffffffff8106cae8&gt;] sys_init_module+0x9c/0x1e0
 [&lt;ffffffff8100296b&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Stephen Boyd &lt;bebarino@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>
The rt2x00dev-&gt;intf_work workqueue is never initialized when a driver is
probed for a non-existent device (in this case rt2500usb). On such a
path we call rt2x00lib_remove_dev() to free any resources initialized
during the probe before we use INIT_WORK to initialize the workqueue.
This causes lockdep to get confused since the lock used in the workqueue
hasn't been initialized yet but is now being acquired during
cancel_work_sync() called by rt2x00lib_remove_dev().

Fix this by initializing the workqueue first before we attempt to probe
the device. This should make lockdep happy and avoid breaking any
assumptions about how the library cleans up after a probe fails.

phy0 -&gt; rt2x00lib_probe_dev: Error - Failed to allocate device.
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
Pid: 2027, comm: modprobe Not tainted 2.6.35-rc5+ #60
Call Trace:
 [&lt;ffffffff8105fe59&gt;] register_lock_class+0x152/0x31f
 [&lt;ffffffff81344a00&gt;] ? usb_control_msg+0xd5/0x111
 [&lt;ffffffff81061bde&gt;] __lock_acquire+0xce/0xcf4
 [&lt;ffffffff8105f6fd&gt;] ? trace_hardirqs_off+0xd/0xf
 [&lt;ffffffff81492aef&gt;] ?  _raw_spin_unlock_irqrestore+0x33/0x41
 [&lt;ffffffff810628d5&gt;] lock_acquire+0xd1/0xf7
 [&lt;ffffffff8104f037&gt;] ? __cancel_work_timer+0x99/0x17e
 [&lt;ffffffff8104f06e&gt;] __cancel_work_timer+0xd0/0x17e
 [&lt;ffffffff8104f037&gt;] ? __cancel_work_timer+0x99/0x17e
 [&lt;ffffffff8104f136&gt;] cancel_work_sync+0xb/0xd
 [&lt;ffffffffa0096675&gt;] rt2x00lib_remove_dev+0x25/0xb0 [rt2x00lib]
 [&lt;ffffffffa0096bf7&gt;] rt2x00lib_probe_dev+0x380/0x3ed [rt2x00lib]
 [&lt;ffffffff811d78a7&gt;] ? __raw_spin_lock_init+0x31/0x52
 [&lt;ffffffffa00bbd2c&gt;] ? T.676+0xe/0x10 [rt2x00usb]
 [&lt;ffffffffa00bbe4f&gt;] rt2x00usb_probe+0x121/0x15e [rt2x00usb]
 [&lt;ffffffff813468bd&gt;] usb_probe_interface+0x151/0x19e
 [&lt;ffffffff812ea08e&gt;] driver_probe_device+0xa7/0x136
 [&lt;ffffffff812ea167&gt;] __driver_attach+0x4a/0x66
 [&lt;ffffffff812ea11d&gt;] ? __driver_attach+0x0/0x66
 [&lt;ffffffff812e96ca&gt;] bus_for_each_dev+0x54/0x89
 [&lt;ffffffff812e9efd&gt;] driver_attach+0x19/0x1b
 [&lt;ffffffff812e9b64&gt;] bus_add_driver+0xb4/0x204
 [&lt;ffffffff812ea41b&gt;] driver_register+0x98/0x109
 [&lt;ffffffff813465dd&gt;] usb_register_driver+0xb2/0x173
 [&lt;ffffffffa00ca000&gt;] ? rt2500usb_init+0x0/0x20 [rt2500usb]
 [&lt;ffffffffa00ca01e&gt;] rt2500usb_init+0x1e/0x20 [rt2500usb]
 [&lt;ffffffff81000203&gt;] do_one_initcall+0x6d/0x17a
 [&lt;ffffffff8106cae8&gt;] sys_init_module+0x9c/0x1e0
 [&lt;ffffffff8100296b&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Stephen Boyd &lt;bebarino@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "rt2x00: Fix rt2800usb TX descriptor writing."</title>
<updated>2010-05-26T18:40:32+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2010-05-26T18:40:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b578bb490fb605c23c20b63995f26d3ab2cfb6e0'/>
<id>b578bb490fb605c23c20b63995f26d3ab2cfb6e0</id>
<content type='text'>
This reverts commit 663cb47cc2c5acd32850f67d051e47d62ed199c9.

This patch was merged out of the proper order, so instead of fixing a
problem with a prior (unmerged) patch, it creates one.  Ooops!

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 reverts commit 663cb47cc2c5acd32850f67d051e47d62ed199c9.

This patch was merged out of the proper order, so instead of fixing a
problem with a prior (unmerged) patch, it creates one.  Ooops!

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Fix rt2800usb TX descriptor writing.</title>
<updated>2010-05-24T19:07:42+00:00</updated>
<author>
<name>Gertjan van Wingerde</name>
<email>gwingerde@gmail.com</email>
</author>
<published>2010-05-13T19:16:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=663cb47cc2c5acd32850f67d051e47d62ed199c9'/>
<id>663cb47cc2c5acd32850f67d051e47d62ed199c9</id>
<content type='text'>
The recent changes to skb handling introduced a bug in the rt2800usb
TX descriptor writing whereby the length of the USB packet wasn't
calculated correctly.
Found via code inspection, as the devices themselves didn't seem to mind.

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>
The recent changes to skb handling introduced a bug in the rt2800usb
TX descriptor writing whereby the length of the USB packet wasn't
calculated correctly.
Found via code inspection, as the devices themselves didn't seem to mind.

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>rt2x00: Fix failed SLEEP-&gt;AWAKE and AWAKE-&gt;SLEEP transitions.</title>
<updated>2010-05-24T19:07:41+00:00</updated>
<author>
<name>Gertjan van Wingerde</name>
<email>gwingerde@gmail.com</email>
</author>
<published>2010-05-13T19:16:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9655a6ec19ca656af246fb80817aa337892aefbf'/>
<id>9655a6ec19ca656af246fb80817aa337892aefbf</id>
<content type='text'>
(Based on a patch created by Ondrej Zary)

In some circumstances the Ralink devices do not properly go to sleep
or wake up, with timeouts occurring.
Fix this by retrying telling the device that it has to wake up or
sleep.

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>
(Based on a patch created by Ondrej Zary)

In some circumstances the Ralink devices do not properly go to sleep
or wake up, with timeouts occurring.
Fix this by retrying telling the device that it has to wake up or
sleep.

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>rt2x00: don't use to_pci_dev in rt2x00pci_uninitialize</title>
<updated>2010-05-24T18:59:25+00:00</updated>
<author>
<name>Helmut Schaa</name>
<email>helmut.schaa@googlemail.com</email>
</author>
<published>2010-05-19T06:47:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=52a9bd2a8fac5193435bb575313c89656709aea8'/>
<id>52a9bd2a8fac5193435bb575313c89656709aea8</id>
<content type='text'>
Don't use to_pci_dev in rt2x00pci_uninitialize to get the allocated irq
as it won't work for platform devices (SoC). Instead, use the irq field
that's already used everywhere else.

Signed-off-by: Helmut Schaa &lt;helmut.schaa@googlemail.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>
Don't use to_pci_dev in rt2x00pci_uninitialize to get the allocated irq
as it won't work for platform devices (SoC). Instead, use the irq field
that's already used everywhere else.

Signed-off-by: Helmut Schaa &lt;helmut.schaa@googlemail.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>drivers/net: remove useless semicolons</title>
<updated>2010-05-18T05:47:34+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2010-05-18T05:47:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ee289b6440c3b0ccb9459495783e8c299bec6604'/>
<id>ee289b6440c3b0ccb9459495783e8c299bec6604</id>
<content type='text'>
switch and while statements don't need semicolons at end of statement

[ Fixup minor conflicts with recent wimax merge... -DaveM ]

Signed-off-by: Joe Perches &lt;joe@perches.com&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>
switch and while statements don't need semicolons at end of statement

[ Fixup minor conflicts with recent wimax merge... -DaveM ]

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6</title>
<updated>2010-05-18T04:09:11+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2010-05-18T04:09:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=820ae8a80eb59962aefbbd4908dfe144ec0f9edb'/>
<id>820ae8a80eb59962aefbbd4908dfe144ec0f9edb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem</title>
<updated>2010-05-17T17:57:43+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2010-05-17T17:57:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=6fe70aae0d128339febfabc073ba4c4a03de4f45'/>
<id>6fe70aae0d128339febfabc073ba4c4a03de4f45</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/net: Remove unnecessary returns from void function()s</title>
<updated>2010-05-14T07:19:28+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2010-05-14T07:19:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a4b770972b8f819e408d7cc3ae9637e15bff62f6'/>
<id>a4b770972b8f819e408d7cc3ae9637e15bff62f6</id>
<content type='text'>
This patch removes from drivers/net/ all the unnecessary
return; statements that precede the last closing brace of
void functions.

It does not remove the returns that are immediately
preceded by a label as gcc doesn't like that.

It also does not remove null void functions with return.

Done via:
$ grep -rP --include=*.[ch] -l "return;\n}" net/ | \
  xargs perl -i -e 'local $/ ; while (&lt;&gt;) { s/\n[ \t\n]+return;\n}/\n}/g; print; }'

with some cleanups by hand.

Compile tested x86 allmodconfig only.

Signed-off-by: Joe Perches &lt;joe@perches.com&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>
This patch removes from drivers/net/ all the unnecessary
return; statements that precede the last closing brace of
void functions.

It does not remove the returns that are immediately
preceded by a label as gcc doesn't like that.

It also does not remove null void functions with return.

Done via:
$ grep -rP --include=*.[ch] -l "return;\n}" net/ | \
  xargs perl -i -e 'local $/ ; while (&lt;&gt;) { s/\n[ \t\n]+return;\n}/\n}/g; print; }'

with some cleanups by hand.

Compile tested x86 allmodconfig only.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: In debugfs frame dumping allow the TX descriptor to be part of the skb.</title>
<updated>2010-05-12T20:50:52+00:00</updated>
<author>
<name>Gertjan van Wingerde</name>
<email>gwingerde@gmail.com</email>
</author>
<published>2010-05-11T21:51:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fd76f148ebc67d662f71f00128c8ddb0538168c0'/>
<id>fd76f148ebc67d662f71f00128c8ddb0538168c0</id>
<content type='text'>
Preparation for futher cleanups in the area of properly maintaining the skb
data without fiddling with the skb-&gt;data pointer.

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>
Preparation for futher cleanups in the area of properly maintaining the skb
data without fiddling with the skb-&gt;data pointer.

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>
</feed>
