<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/mac80211, branch v2.6.33</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6</title>
<updated>2010-02-14T19:56:38+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2010-02-14T19:56:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3d0beb921fa34ebf8b13e206e5473329b14deb83'/>
<id>3d0beb921fa34ebf8b13e206e5473329b14deb83</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: fix handling of null-rate control in rate_control_get_rate</title>
<updated>2010-02-12T19:50:22+00:00</updated>
<author>
<name>Juuso Oikarinen</name>
<email>juuso.oikarinen@nokia.com</email>
</author>
<published>2010-02-12T08:05:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5affcd6ba2036b59a4dee3f0576ae3584e92e4f1'/>
<id>5affcd6ba2036b59a4dee3f0576ae3584e92e4f1</id>
<content type='text'>
For hardware with IEEE80211_HW_HAS_RATE_CONTROL the rate controller is not
initialized. However, calling functions such as ieee80211_beacon_get result
in the rate_control_get_rate function getting called, which is accessing
(in this case uninitialized) rate control structures unconditionally.

Fix by exiting the function before setting the rates for HW with
IEEE80211_HW_HAS_RATE_CONTROL set. The initialization of the ieee80211_tx_info
struct is intentionally still executed.

Signed-off-by: Juuso Oikarinen &lt;juuso.oikarinen@nokia.com&gt;
Reviewed-by: Kalle Valo &lt;kalle.valo@nokia.com&gt;
Cc: stable@kernel.org
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For hardware with IEEE80211_HW_HAS_RATE_CONTROL the rate controller is not
initialized. However, calling functions such as ieee80211_beacon_get result
in the rate_control_get_rate function getting called, which is accessing
(in this case uninitialized) rate control structures unconditionally.

Fix by exiting the function before setting the rates for HW with
IEEE80211_HW_HAS_RATE_CONTROL set. The initialization of the ieee80211_tx_info
struct is intentionally still executed.

Signed-off-by: Juuso Oikarinen &lt;juuso.oikarinen@nokia.com&gt;
Reviewed-by: Kalle Valo &lt;kalle.valo@nokia.com&gt;
Cc: stable@kernel.org
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6</title>
<updated>2010-02-10T20:35:24+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2010-02-10T20:35:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=044c18c9f51a2b92b310e28bb121e55451b088dd'/>
<id>044c18c9f51a2b92b310e28bb121e55451b088dd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: fix deferred hardware scan requests</title>
<updated>2010-02-08T21:07:23+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes@sipsolutions.net</email>
</author>
<published>2010-02-03T09:22:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c0ce77b8323c1a0d4eeef97caf16c0ea971222a9'/>
<id>c0ce77b8323c1a0d4eeef97caf16c0ea971222a9</id>
<content type='text'>
Reinette found the reason for the warnings that
happened occasionally when a hw-offloaded scan
finished; her description of the problem:

  mac80211 will defer the handling of scan requests if it is
  busy with management work at the time. The scan requests
  are deferred and run after the work has completed. When
  this occurs there are currently two problems.

  * The scan request for hardware scan is not fully populated
    with the band and channels to scan not initialized.

  * When the scan is queued the state is not correctly updated
    to reflect that a scan is in progress. The problem here is
    that when the driver completes the scan and calls
    ieee80211_scan_completed() a warning will be triggered
    since mac80211 was not aware that a scan was in progress.

The reason is that the queued scan work will start
the hw scan right away when the hw_scan_req struct
has already been allocated. However, in the first
pass it will not have been filled, which happens
at the same time as setting the bits. To fix this,
simply move the allocation after the pending work
test as well, so that the first iteration of the
scan work will call __ieee80211_start_scan() even
in the hardware scan case.

Bug-identified-by: Reinette Chatre &lt;reinette.chatre@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.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>
Reinette found the reason for the warnings that
happened occasionally when a hw-offloaded scan
finished; her description of the problem:

  mac80211 will defer the handling of scan requests if it is
  busy with management work at the time. The scan requests
  are deferred and run after the work has completed. When
  this occurs there are currently two problems.

  * The scan request for hardware scan is not fully populated
    with the band and channels to scan not initialized.

  * When the scan is queued the state is not correctly updated
    to reflect that a scan is in progress. The problem here is
    that when the driver completes the scan and calls
    ieee80211_scan_completed() a warning will be triggered
    since mac80211 was not aware that a scan was in progress.

The reason is that the queued scan work will start
the hw scan right away when the hw_scan_req struct
has already been allocated. However, in the first
pass it will not have been filled, which happens
at the same time as setting the bits. To fix this,
simply move the allocation after the pending work
test as well, so that the first iteration of the
scan work will call __ieee80211_start_scan() even
in the hardware scan case.

Bug-identified-by: Reinette Chatre &lt;reinette.chatre@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: Fix probe request filtering in IBSS mode</title>
<updated>2010-02-08T21:07:22+00:00</updated>
<author>
<name>Benoit Papillault</name>
<email>benoit.papillault@free.fr</email>
</author>
<published>2010-02-05T00:21:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0da780c269957783d341fc3559e6b4c9912af7b4'/>
<id>0da780c269957783d341fc3559e6b4c9912af7b4</id>
<content type='text'>
We only reply to probe request if either the requested SSID is the
broadcast SSID or if the requested SSID matches our own SSID. This
latter case was not properly handled since we were replying to different
SSID with the same length as our own SSID.

Signed-off-by: Benoit Papillault &lt;benoit.papillault@free.fr&gt;
Cc: stable@kernel.org
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 only reply to probe request if either the requested SSID is the
broadcast SSID or if the requested SSID matches our own SSID. This
latter case was not properly handled since we were replying to different
SSID with the same length as our own SSID.

Signed-off-by: Benoit Papillault &lt;benoit.papillault@free.fr&gt;
Cc: stable@kernel.org
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6</title>
<updated>2010-01-28T13:42:33+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2010-01-28T13:42:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=744595c847cefd6ac0eec8f66e9fba95687c3f4f'/>
<id>744595c847cefd6ac0eec8f66e9fba95687c3f4f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: fix NULL pointer dereference when ftrace is enabled</title>
<updated>2010-01-26T16:52:13+00:00</updated>
<author>
<name>Zhu Yi</name>
<email>yi.zhu@intel.com</email>
</author>
<published>2010-01-26T07:58:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3092ad054406f069991ca561adc74f2d9fbb6867'/>
<id>3092ad054406f069991ca561adc74f2d9fbb6867</id>
<content type='text'>
I got below kernel oops when I try to bring down the network interface if
ftrace is enabled. The root cause is drv_ampdu_action() is passed with a
NULL ssn pointer in the BA session tear down case. We need to check and
avoid dereferencing it in trace entry assignment.

BUG: unable to handle kernel NULL pointer dereference
Modules linked in: at (null)
IP: [&lt;f98fe02a&gt;] ftrace_raw_event_drv_ampdu_action+0x10a/0x160 [mac80211]
*pde = 00000000
Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
[...]
Call Trace:
 [&lt;f98fdf20&gt;] ? ftrace_raw_event_drv_ampdu_action+0x0/0x160 [mac80211]
 [&lt;f98dac4c&gt;] ? __ieee80211_stop_rx_ba_session+0xfc/0x220 [mac80211]
 [&lt;f98d97fb&gt;] ? ieee80211_sta_tear_down_BA_sessions+0x3b/0x50 [mac80211]
 [&lt;f98dc6f6&gt;] ? ieee80211_set_disassoc+0xe6/0x230 [mac80211]
 [&lt;f98dc6ac&gt;] ? ieee80211_set_disassoc+0x9c/0x230 [mac80211]
 [&lt;f98dcbb8&gt;] ? ieee80211_mgd_deauth+0x158/0x170 [mac80211]
 [&lt;f98e4bdb&gt;] ? ieee80211_deauth+0x1b/0x20 [mac80211]
 [&lt;f8987f49&gt;] ? __cfg80211_mlme_deauth+0xe9/0x120 [cfg80211]
 [&lt;f898b870&gt;] ? __cfg80211_disconnect+0x170/0x1d0 [cfg80211]

Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: stable@kernel.org
Signed-off-by: Zhu Yi &lt;yi.zhu@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>
I got below kernel oops when I try to bring down the network interface if
ftrace is enabled. The root cause is drv_ampdu_action() is passed with a
NULL ssn pointer in the BA session tear down case. We need to check and
avoid dereferencing it in trace entry assignment.

BUG: unable to handle kernel NULL pointer dereference
Modules linked in: at (null)
IP: [&lt;f98fe02a&gt;] ftrace_raw_event_drv_ampdu_action+0x10a/0x160 [mac80211]
*pde = 00000000
Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
[...]
Call Trace:
 [&lt;f98fdf20&gt;] ? ftrace_raw_event_drv_ampdu_action+0x0/0x160 [mac80211]
 [&lt;f98dac4c&gt;] ? __ieee80211_stop_rx_ba_session+0xfc/0x220 [mac80211]
 [&lt;f98d97fb&gt;] ? ieee80211_sta_tear_down_BA_sessions+0x3b/0x50 [mac80211]
 [&lt;f98dc6f6&gt;] ? ieee80211_set_disassoc+0xe6/0x230 [mac80211]
 [&lt;f98dc6ac&gt;] ? ieee80211_set_disassoc+0x9c/0x230 [mac80211]
 [&lt;f98dcbb8&gt;] ? ieee80211_mgd_deauth+0x158/0x170 [mac80211]
 [&lt;f98e4bdb&gt;] ? ieee80211_deauth+0x1b/0x20 [mac80211]
 [&lt;f8987f49&gt;] ? __cfg80211_mlme_deauth+0xe9/0x120 [cfg80211]
 [&lt;f898b870&gt;] ? __cfg80211_disconnect+0x170/0x1d0 [cfg80211]

Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: stable@kernel.org
Signed-off-by: Zhu Yi &lt;yi.zhu@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6</title>
<updated>2010-01-19T10:03:09+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2010-01-19T10:03:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=dad48a4ef20774732e53840f371b0cc27981c43a'/>
<id>dad48a4ef20774732e53840f371b0cc27981c43a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: fix sign error in pid controller</title>
<updated>2010-01-18T20:07:02+00:00</updated>
<author>
<name>Bob Copeland</name>
<email>me@bobcopeland.com</email>
</author>
<published>2010-01-16T19:36:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e850f68b8f27a76c4377c34f2e216b8e7e10db3d'/>
<id>e850f68b8f27a76c4377c34f2e216b8e7e10db3d</id>
<content type='text'>
While testing the pid rate controller in mac80211_hwsim, I noticed
that once the controller reached 54 Mbit rates, it would fail to
lower the rate when necessary.  The debug log shows:

1945 186786 pf_sample 50 3534 3577 50

My interpretation is that the fixed point scaling of the target
error value (pf) is incorrect: the error value of 50 compared to
a target of 14 case should result in a scaling value of
(14-50) = -36 * 256 or -9216, but instead it is (14 * 256)-50, or
3534.

Correct this by doing fixed point scaling after subtraction.

Signed-off-by: Bob Copeland &lt;me@bobcopeland.com&gt;
Acked-by: Stefano Brivio &lt;stefano.brivio@polimi.it&gt;
Acked-by: Mattias Nissler &lt;mattias.nissler@gmx.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>
While testing the pid rate controller in mac80211_hwsim, I noticed
that once the controller reached 54 Mbit rates, it would fail to
lower the rate when necessary.  The debug log shows:

1945 186786 pf_sample 50 3534 3577 50

My interpretation is that the fixed point scaling of the target
error value (pf) is incorrect: the error value of 50 compared to
a target of 14 case should result in a scaling value of
(14-50) = -36 * 256 or -9216, but instead it is (14 * 256)-50, or
3534.

Correct this by doing fixed point scaling after subtraction.

Signed-off-by: Bob Copeland &lt;me@bobcopeland.com&gt;
Acked-by: Stefano Brivio &lt;stefano.brivio@polimi.it&gt;
Acked-by: Mattias Nissler &lt;mattias.nissler@gmx.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: check that ieee80211_set_power_mgmt only handles STA interfaces.</title>
<updated>2010-01-15T21:20:22+00:00</updated>
<author>
<name>Benoit Papillault</name>
<email>benoit.papillault@free.fr</email>
</author>
<published>2010-01-15T11:21:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e5de30c9bf4a39db9f54c4a373470ce65881ade0'/>
<id>e5de30c9bf4a39db9f54c4a373470ce65881ade0</id>
<content type='text'>
ieee80211_set_power_mgmt is meant for STA interfaces only. Moreover,
since sdata-&gt;u.mgd.mtx is only initialized for STA interfaces, using
this code for any other type of interface (like creating a monitor
interface) will result in a oops.

Cc: stable@kernel.org
Signed-off-by: Benoit Papillault &lt;benoit.papillault@free.fr&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>
ieee80211_set_power_mgmt is meant for STA interfaces only. Moreover,
since sdata-&gt;u.mgd.mtx is only initialized for STA interfaces, using
this code for any other type of interface (like creating a monitor
interface) will result in a oops.

Cc: stable@kernel.org
Signed-off-by: Benoit Papillault &lt;benoit.papillault@free.fr&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
