<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net/wireless, branch v3.3-rc5</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>rtlwifi: Modify rtl_pci_init to return 0 on success</title>
<updated>2012-02-09T20:17:29+00:00</updated>
<author>
<name>Simon Graham</name>
<email>simon.graham@virtualcomputer.com</email>
</author>
<published>2012-02-09T14:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c27111e5b8d6b1e9296f7075cdc35872f672b524'/>
<id>c27111e5b8d6b1e9296f7075cdc35872f672b524</id>
<content type='text'>
Fixes problem where caller would think routine succeeded when it failed
leading to divide by zero panic.

Signed-off-by: Simon Graham &lt;simon.graham@virtualcomputer.com&gt;
Acked-by: Larry Finger &lt;Larry.Finger@lwfinger.net&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>
Fixes problem where caller would think routine succeeded when it failed
leading to divide by zero panic.

Signed-off-by: Simon Graham &lt;simon.graham@virtualcomputer.com&gt;
Acked-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>zd1211rw: firmware needs duration_id set to zero for non-pspoll frames</title>
<updated>2012-02-07T19:43:15+00:00</updated>
<author>
<name>Tomas Vanek</name>
<email>Tomas.Vanek@fbl.cz</email>
</author>
<published>2012-02-05T13:51:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e81a7bd55531a77d8c16d44766db4089c2983f1b'/>
<id>e81a7bd55531a77d8c16d44766db4089c2983f1b</id>
<content type='text'>
Some devices (iwl5100) cannot connect to zd1211rw based AP. It appears that
zd1211 firmware messes up duration_id field if it is not set to zero by driver.

Sniffing traffic shows that zd1211 is transmitting frames with duration_id bits
14 and 15 set and other bits appearing random. Setting duration_id at driver to
zero results zd1211 outputting sane duration_id. This means that firmware is
setting correct values itself and expects duration_id to be zero in first
place.

Looking at vendor driver shows that only PSPoll frames have duration_id set by
driver, for other frames duration_id left zero.

Original bug-report and attached patch at:
  http://sourceforge.net/mailarchive/message.php?msg_id=28759111

Reported-by: Tomas Vanek &lt;Tomas.Vanek@fbl.cz&gt;
[modified original patch from bug-report, added check for pspoll frame]
Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@mbnet.fi&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>
Some devices (iwl5100) cannot connect to zd1211rw based AP. It appears that
zd1211 firmware messes up duration_id field if it is not set to zero by driver.

Sniffing traffic shows that zd1211 is transmitting frames with duration_id bits
14 and 15 set and other bits appearing random. Setting duration_id at driver to
zero results zd1211 outputting sane duration_id. This means that firmware is
setting correct values itself and expects duration_id to be zero in first
place.

Looking at vendor driver shows that only PSPoll frames have duration_id set by
driver, for other frames duration_id left zero.

Original bug-report and attached patch at:
  http://sourceforge.net/mailarchive/message.php?msg_id=28759111

Reported-by: Tomas Vanek &lt;Tomas.Vanek@fbl.cz&gt;
[modified original patch from bug-report, added check for pspoll frame]
Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@mbnet.fi&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k_hw: fix a RTS/CTS timeout regression</title>
<updated>2012-02-06T16:34:02+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2012-02-05T20:15:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=55a2bb4a6d5e8c7b324d003e130fd9aaf33be4e6'/>
<id>55a2bb4a6d5e8c7b324d003e130fd9aaf33be4e6</id>
<content type='text'>
commit adb5066 "ath9k_hw: do not apply the 2.4 ghz ack timeout
workaround to cts" reduced the hardware CTS timeout to the normal
values specified by the standard, but it turns out while it doesn't
need the same extra time that it needs for the ACK timeout, it
does need more than the value specified in the standard, but only
for 2.4 GHz.

This patch brings the CTS timeout value in sync with the initialization
values, while still allowing adjustment for bigger distances.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Cc: stable@vger.kernel.org
Reported-by: Seth Forshee &lt;seth.forshee@canonical.com&gt;
Reported-by: Marek Lindner &lt;lindner_marek@yahoo.de&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>
commit adb5066 "ath9k_hw: do not apply the 2.4 ghz ack timeout
workaround to cts" reduced the hardware CTS timeout to the normal
values specified by the standard, but it turns out while it doesn't
need the same extra time that it needs for the ACK timeout, it
does need more than the value specified in the standard, but only
for 2.4 GHz.

This patch brings the CTS timeout value in sync with the initialization
values, while still allowing adjustment for bigger distances.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Cc: stable@vger.kernel.org
Reported-by: Seth Forshee &lt;seth.forshee@canonical.com&gt;
Reported-by: Marek Lindner &lt;lindner_marek@yahoo.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: fix a WEP crypto related regression</title>
<updated>2012-02-06T16:34:02+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2012-02-05T20:15:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f88373fa47f3ce6590fdfaa742d0ddacc2ae017f'/>
<id>f88373fa47f3ce6590fdfaa742d0ddacc2ae017f</id>
<content type='text'>
commit b4a82a0 "ath9k_hw: fix interpretation of the rx KeyMiss flag"
fixed the interpretation of the KeyMiss flag for keycache based lookups,
however WEP encryption uses a static index, so KeyMiss is always asserted
for it, even though frames are decrypted properly.
Fix this by clearing the ATH9K_RXERR_KEYMISS flag if no keycache based
lookup was performed.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Cc: stable@vger.kernel.org
Reported-by: Laurent Bonnans &lt;bonnans.l@gmail.com&gt;
Reported-by: Jurica Vukadin &lt;u.ra604@googlemail.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>
commit b4a82a0 "ath9k_hw: fix interpretation of the rx KeyMiss flag"
fixed the interpretation of the KeyMiss flag for keycache based lookups,
however WEP encryption uses a static index, so KeyMiss is always asserted
for it, even though frames are decrypted properly.
Fix this by clearing the ATH9K_RXERR_KEYMISS flag if no keycache based
lookup was performed.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Cc: stable@vger.kernel.org
Reported-by: Laurent Bonnans &lt;bonnans.l@gmail.com&gt;
Reported-by: Jurica Vukadin &lt;u.ra604@googlemail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mwifiex: add NULL checks in driver unload path</title>
<updated>2012-02-06T16:34:02+00:00</updated>
<author>
<name>Amitkumar Karwar</name>
<email>akarwar@marvell.com</email>
</author>
<published>2012-02-04T04:34:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2da8cbf8a6b454296c9db7b57cac72d5a39e3aa7'/>
<id>2da8cbf8a6b454296c9db7b57cac72d5a39e3aa7</id>
<content type='text'>
If driver load is failed, sometimes few pointers may remain
uninitialized ex. priv-&gt;wdev, priv-&gt;netdev, adapter-&gt;sleep_cfm
This will cause NULL pointer dereferance while unloading the
driver.

Signed-off-by: Amitkumar Karwar &lt;akarwar@marvell.com&gt;
Signed-off-by: Kiran Divekar &lt;dkiran@marvell.com&gt;
Signed-off-by: Bing Zhao &lt;bzhao@marvell.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>
If driver load is failed, sometimes few pointers may remain
uninitialized ex. priv-&gt;wdev, priv-&gt;netdev, adapter-&gt;sleep_cfm
This will cause NULL pointer dereferance while unloading the
driver.

Signed-off-by: Amitkumar Karwar &lt;akarwar@marvell.com&gt;
Signed-off-by: Kiran Divekar &lt;dkiran@marvell.com&gt;
Signed-off-by: Bing Zhao &lt;bzhao@marvell.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: Fix kernel panic during driver initilization</title>
<updated>2012-02-03T19:18:02+00:00</updated>
<author>
<name>Mohammed Shafi Shajakhan</name>
<email>mohammed@qca.qualcomm.com</email>
</author>
<published>2012-02-02T10:59:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=07445f688218a48bde72316aed9de4fdcc173131'/>
<id>07445f688218a48bde72316aed9de4fdcc173131</id>
<content type='text'>
all works need to be initialized before ieee80211_register_hw
to prevent mac80211 call backs such as drv_start, drv_config
getting started. otherwise we would queue/cancel works before
initializing them and it leads to kernel panic.
this issue can be recreated with the following script
in Chrome laptops with AR928X cards, with background scan
running (or) Network manager is running

while true
do
sudo modprobe -v ath9k
sleep 3
sudo modprobe -r ath9k
sleep 3
done

	 EIP: [&lt;81040a47&gt;] __cancel_work_timer+0xb8/0xe1 SS:ESP 0068:f6be9d70
	 ---[ end trace 4f86d6139a9900ef ]---
	 Registered led device: ath9k-phy0
	 ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xf88a0000,
	 irq=16
	 Kernel panic - not syncing: Fatal exception
	 Pid: 456, comm: wpa_supplicant Tainted: G      D
	 3.0.13 #1
	Call Trace:
	 [&lt;81379e21&gt;] panic+0x53/0x14a
	 [&lt;81004a30&gt;] oops_end+0x73/0x81
	 [&lt;81004b53&gt;] die+0x4c/0x55
	 [&lt;81002710&gt;] do_trap+0x7c/0x83
	 [&lt;81002855&gt;] ? do_bounds+0x58/0x58
	 [&lt;810028cc&gt;] do_invalid_op+0x77/0x81
	 [&lt;81040a47&gt;] ? __cancel_work_timer+0xb8/0xe1
	 [&lt;810489ec&gt;] ? sched_clock_cpu+0x81/0x11f
	 [&lt;8103f809&gt;] ? wait_on_work+0xe2/0xf7
	 [&lt;8137f807&gt;] error_code+0x67/0x6c
	 [&lt;810300d8&gt;] ? wait_consider_task+0x4ba/0x84c
	 [&lt;81040a47&gt;] ? __cancel_work_timer+0xb8/0xe1
	 [&lt;810380c9&gt;] ? try_to_del_timer_sync+0x5f/0x67
	 [&lt;81040a91&gt;] cancel_work_sync+0xf/0x11
	 [&lt;f88d7b7c&gt;] ath_set_channel+0x62/0x25c [ath9k]
	 [&lt;f88d67d1&gt;] ? ath9k_tx_last_beacon+0x26a/0x85c [ath9k]
	 [&lt;f88d8899&gt;] ath_radio_disable+0x3f1/0x68e [ath9k]
	 [&lt;f90d0edb&gt;] ieee80211_hw_config+0x111/0x116 [mac80211]
	 [&lt;f90dd95c&gt;] __ieee80211_recalc_idle+0x919/0xa37 [mac80211]
	 [&lt;f90dda76&gt;] __ieee80211_recalc_idle+0xa33/0xa37 [mac80211]
	 [&lt;812dbed8&gt;] __dev_open+0x82/0xab

Cc: &lt;stable@vger.kernel.org&gt;
Cc: Gary Morain &lt;gmorain@google.com&gt;
Cc: Paul Stewart &lt;pstew@google.com&gt;
Cc: Vasanthakumar Thiagarajan &lt;vthiagar@qca.qualcomm.com&gt;
Tested-by: Mohammed Shafi Shajakhan &lt;mohammed@qca.qualcomm.com&gt;
Signed-off-by: Rajkumar Manoharan &lt;rmanohar@qca.qualcomm.com&gt;
Signed-off-by: Mohammed Shafi Shajakhan &lt;mohammed@qca.qualcomm.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>
all works need to be initialized before ieee80211_register_hw
to prevent mac80211 call backs such as drv_start, drv_config
getting started. otherwise we would queue/cancel works before
initializing them and it leads to kernel panic.
this issue can be recreated with the following script
in Chrome laptops with AR928X cards, with background scan
running (or) Network manager is running

while true
do
sudo modprobe -v ath9k
sleep 3
sudo modprobe -r ath9k
sleep 3
done

	 EIP: [&lt;81040a47&gt;] __cancel_work_timer+0xb8/0xe1 SS:ESP 0068:f6be9d70
	 ---[ end trace 4f86d6139a9900ef ]---
	 Registered led device: ath9k-phy0
	 ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xf88a0000,
	 irq=16
	 Kernel panic - not syncing: Fatal exception
	 Pid: 456, comm: wpa_supplicant Tainted: G      D
	 3.0.13 #1
	Call Trace:
	 [&lt;81379e21&gt;] panic+0x53/0x14a
	 [&lt;81004a30&gt;] oops_end+0x73/0x81
	 [&lt;81004b53&gt;] die+0x4c/0x55
	 [&lt;81002710&gt;] do_trap+0x7c/0x83
	 [&lt;81002855&gt;] ? do_bounds+0x58/0x58
	 [&lt;810028cc&gt;] do_invalid_op+0x77/0x81
	 [&lt;81040a47&gt;] ? __cancel_work_timer+0xb8/0xe1
	 [&lt;810489ec&gt;] ? sched_clock_cpu+0x81/0x11f
	 [&lt;8103f809&gt;] ? wait_on_work+0xe2/0xf7
	 [&lt;8137f807&gt;] error_code+0x67/0x6c
	 [&lt;810300d8&gt;] ? wait_consider_task+0x4ba/0x84c
	 [&lt;81040a47&gt;] ? __cancel_work_timer+0xb8/0xe1
	 [&lt;810380c9&gt;] ? try_to_del_timer_sync+0x5f/0x67
	 [&lt;81040a91&gt;] cancel_work_sync+0xf/0x11
	 [&lt;f88d7b7c&gt;] ath_set_channel+0x62/0x25c [ath9k]
	 [&lt;f88d67d1&gt;] ? ath9k_tx_last_beacon+0x26a/0x85c [ath9k]
	 [&lt;f88d8899&gt;] ath_radio_disable+0x3f1/0x68e [ath9k]
	 [&lt;f90d0edb&gt;] ieee80211_hw_config+0x111/0x116 [mac80211]
	 [&lt;f90dd95c&gt;] __ieee80211_recalc_idle+0x919/0xa37 [mac80211]
	 [&lt;f90dda76&gt;] __ieee80211_recalc_idle+0xa33/0xa37 [mac80211]
	 [&lt;812dbed8&gt;] __dev_open+0x82/0xab

Cc: &lt;stable@vger.kernel.org&gt;
Cc: Gary Morain &lt;gmorain@google.com&gt;
Cc: Paul Stewart &lt;pstew@google.com&gt;
Cc: Vasanthakumar Thiagarajan &lt;vthiagar@qca.qualcomm.com&gt;
Tested-by: Mohammed Shafi Shajakhan &lt;mohammed@qca.qualcomm.com&gt;
Signed-off-by: Rajkumar Manoharan &lt;rmanohar@qca.qualcomm.com&gt;
Signed-off-by: Mohammed Shafi Shajakhan &lt;mohammed@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mwifiex: handle association failure case correctly</title>
<updated>2012-02-03T19:17:12+00:00</updated>
<author>
<name>Amitkumar Karwar</name>
<email>akarwar@marvell.com</email>
</author>
<published>2012-02-02T04:41:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b7097eb75fa11c302dcdec83f1dbfa874e0af0d1'/>
<id>b7097eb75fa11c302dcdec83f1dbfa874e0af0d1</id>
<content type='text'>
Currently even if association is failed "iw link" shows some
information about connected BSS and "Tx timeout" error is seen in
dmesg log.

This patch fixes below issues in the code to handle assoc failure
case correctly.
1) "status" variable in mwifiex_wait_queue_complete() is not
correctly updated. Hence driver doesn't inform cfg80211 stack
about association failure.
2) During association network queues are stopped but carrier is
not cleared, which gives Tx timeout error in failure case

Signed-off-by: Amitkumar Karwar &lt;akarwar@marvell.com&gt;
Signed-off-by: Bing Zhao &lt;bzhao@marvell.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>
Currently even if association is failed "iw link" shows some
information about connected BSS and "Tx timeout" error is seen in
dmesg log.

This patch fixes below issues in the code to handle assoc failure
case correctly.
1) "status" variable in mwifiex_wait_queue_complete() is not
correctly updated. Hence driver doesn't inform cfg80211 stack
about association failure.
2) During association network queues are stopped but carrier is
not cleared, which gives Tx timeout error in failure case

Signed-off-by: Amitkumar Karwar &lt;akarwar@marvell.com&gt;
Signed-off-by: Bing Zhao &lt;bzhao@marvell.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: use WARN_ON_ONCE in ath_rc_get_highest_rix</title>
<updated>2012-02-03T19:17:12+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2012-01-30T15:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8149415efa033ca138c0080ded77329e98697c7b'/>
<id>8149415efa033ca138c0080ded77329e98697c7b</id>
<content type='text'>
The device seems to survive the issue, so no need to flood the logs
about it...

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 device seems to survive the issue, so no need to flood the logs
about it...

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: don't mess up QoS counters with non-QoS frames</title>
<updated>2012-02-01T20:26:00+00:00</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2012-02-01T15:01:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3d29dd9b5b160ba4542a9b8f869a220559e633a0'/>
<id>3d29dd9b5b160ba4542a9b8f869a220559e633a0</id>
<content type='text'>
In my AMPDU rework, I rely on the sequence numbers of frames. But
I didn't check that the frame has a valid tid before updating the
tracking counters. As a result, the Tx queues were stalled. People
who hit this bug saw that we simply didn't let any data out.

This bug was introduced in 3.3.

This patch fixes that and checks that the frame is a QoS frame before
looking at its tid and changing the counters.

Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Wey-Yi Guy &lt;wey-yi.w.guy@intel.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>
In my AMPDU rework, I rely on the sequence numbers of frames. But
I didn't check that the frame has a valid tid before updating the
tracking counters. As a result, the Tx queues were stalled. People
who hit this bug saw that we simply didn't let any data out.

This bug was introduced in 3.3.

This patch fixes that and checks that the frame is a QoS frame before
looking at its tid and changing the counters.

Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Wey-Yi Guy &lt;wey-yi.w.guy@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: make "Tx aggregation enabled on ra =" be at DEBUG level</title>
<updated>2012-02-01T20:26:00+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2012-01-31T19:40:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5fb8c182d26472ea24cbbadb6a3e355d7621cca4'/>
<id>5fb8c182d26472ea24cbbadb6a3e355d7621cca4</id>
<content type='text'>
Average users either don't care or they think that message indicates a
problem...

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Average users either don't care or they think that message indicates a
problem...

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
