<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/wireless/core.h, branch linux-3.15.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.15.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.15.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-03-19T20:29:58Z</updated>
<entry>
<title>cfg80211: remove macro ASSERT_RDEV_LOCK(rdev)</title>
<updated>2014-03-19T20:29:58Z</updated>
<author>
<name>Zhao, Gang</name>
</author>
<published>2014-03-19T09:04:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=73fb08e24ae840bc518facc2c605dd6bb3751fec'/>
<id>urn:sha1:73fb08e24ae840bc518facc2c605dd6bb3751fec</id>
<content type='text'>
Macro ASSERT_RDEV_LOCK(rdev) is equal to ASSERT_RTNL(), so replace it
with ASSERT_RTNL() and remove it.

Signed-off-by: Zhao, Gang &lt;gamerh2o@gmail.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>cfg80211: make __cfg80211_join_ibss() static</title>
<updated>2014-03-19T20:29:56Z</updated>
<author>
<name>Zhao, Gang</name>
</author>
<published>2014-03-08T03:01:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2316d7b0544c4601cc852c801c93d1f451378740'/>
<id>urn:sha1:2316d7b0544c4601cc852c801c93d1f451378740</id>
<content type='text'>
Function __cfg80211_join_ibss() is only used in net/wireless/ibss.c,
so make it static.

Signed-off-by: Zhao, Gang &lt;gamerh2o@gmail.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>cfg80211: send stop AP event only due to internal reason</title>
<updated>2014-02-25T16:34:18Z</updated>
<author>
<name>Ilan Peer</name>
</author>
<published>2014-02-25T13:33:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7c8d5e03acc680eb433b0d5dbacbb6cc9db663a1'/>
<id>urn:sha1:7c8d5e03acc680eb433b0d5dbacbb6cc9db663a1</id>
<content type='text'>
Commit "nl80211: send event when AP operation is stopped" added an
event to notify user space that an AP interface has been stopped, to
handle cases such as suspend etc. The event is sent regardless
if the stop AP flow was triggered by user space or due to internal state
change.

This might cause issues with wpa_supplicant/hostapd flows that consider
stop AP flow as a synchronous one, e.g., AP/GO channel change in the
absence of CSA support. In such cases, the flow will restart the AP
immediately after the stop AP flow is done, and only handle the stop
AP event after the current flow is done, and as a result stop the AP
again.

Change the current implementation to only send the event in case the
stop AP was triggered due to an internal reason.

Signed-off-by: Ilan Peer &lt;ilan.peer@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>cfg80211: DFS get CAC time from regulatory database</title>
<updated>2014-02-25T16:32:54Z</updated>
<author>
<name>Janusz Dziedzic</name>
</author>
<published>2014-02-21T18:46:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=31559f35c5724976fd975e5d7e90cdb693b8dd27'/>
<id>urn:sha1:31559f35c5724976fd975e5d7e90cdb693b8dd27</id>
<content type='text'>
Send Channel Availability Check time as a parameter
of start_radar_detection() callback.
Get CAC time from regulatory database.

Signed-off-by: Janusz Dziedzic &lt;janusz.dziedzic@tieto.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless</title>
<updated>2014-02-13T19:43:02Z</updated>
<author>
<name>John W. Linville</name>
</author>
<published>2014-02-13T19:43:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0e028ab0fb2da47fd235dafd4159859892e73d08'/>
<id>urn:sha1:0e028ab0fb2da47fd235dafd4159859892e73d08</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cfg80211: send scan results from work queue</title>
<updated>2014-02-06T08:55:19Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2014-01-22T09:14:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f9d15d162b3acf28f85b3ac05c4883e5ed588d28'/>
<id>urn:sha1:f9d15d162b3acf28f85b3ac05c4883e5ed588d28</id>
<content type='text'>
Due to the previous commit, when a scan finishes, it is in theory
possible to hit the following sequence:
 1. interface starts being removed
 2. scan is cancelled by driver and cfg80211 is notified
 3. scan done work is scheduled
 4. interface is removed completely, rdev-&gt;scan_req is freed,
    event sent to userspace but scan done work remains pending
 5. new scan is requested on another virtual interface
 6. scan done work runs, freeing the still-running scan

To fix this situation, hang on to the scan done message and block
new scans while that is the case, and only send the message from
the work function, regardless of whether the scan_req is already
freed from interface removal. This makes step 5 above impossible
and changes step 6 to be
 5. scan done work runs, sending the scan done message

As this can't work for wext, so we send the message immediately,
but this shouldn't be an issue since we still return -EBUSY.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>cfg80211: consider existing DFS interfaces</title>
<updated>2014-02-04T20:58:17Z</updated>
<author>
<name>Michal Kazior</name>
</author>
<published>2014-01-29T13:22:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e0e29615a2077be852b1245b57c5b00fa609522'/>
<id>urn:sha1:9e0e29615a2077be852b1245b57c5b00fa609522</id>
<content type='text'>
It was possible to break interface combinations in
the following way:

 combo 1: iftype = AP, num_ifaces = 2, num_chans = 2,
 combo 2: iftype = AP, num_ifaces = 1, num_chans = 1, radar = HT20

With the above interface combinations it was
possible to:

 step 1. start AP on DFS channel by matching combo 2
 step 2. start AP on non-DFS channel by matching combo 1

This was possible beacuse (step 2) did not consider
if other interfaces require radar detection.

The patch changes how cfg80211 tracks channels -
instead of channel itself now a complete chandef
is stored.

Signed-off-by: Michal Kazior &lt;michal.kazior@tieto.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>cfg80211: fix channel configuration in IBSS join</title>
<updated>2014-02-04T20:58:16Z</updated>
<author>
<name>Antonio Quartulli</name>
</author>
<published>2014-01-29T16:53:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fe94f3a4ffaa20c7470038c69ffc8e545ef5f90a'/>
<id>urn:sha1:fe94f3a4ffaa20c7470038c69ffc8e545ef5f90a</id>
<content type='text'>
When receiving an IBSS_JOINED event select the BSS object
based on the {bssid, channel} couple rather than the bssid
only.
With the current approach if another cell having the same
BSSID (but using a different channel) exists then cfg80211
picks up the wrong BSS object.
The result is a mismatching channel configuration between
cfg80211 and the driver, that can lead to any sort of
problem.

The issue can be triggered by having an IBSS sitting on
given channel and then asking the driver to create a new
cell using the same BSSID but with a different frequency.
By passing the channel to cfg80211_get_bss() we can solve
this ambiguity and retrieve/create the correct BSS object.
All the users of cfg80211_ibss_joined() have been changed
accordingly.

Moreover WARN when cfg80211_ibss_joined() gets a NULL
channel as argument and remove a bogus call of the same
function in ath6kl (it does not make sense to call
cfg80211_ibss_joined() with a zero BSSID on ibss-leave).

Cc: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Cc: Arend van Spriel &lt;arend@broadcom.com&gt;
Cc: Bing Zhao &lt;bzhao@marvell.com&gt;
Cc: Jussi Kivilinna &lt;jussi.kivilinna@iki.fi&gt;
Cc: libertas-dev@lists.infradead.org
Acked-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Signed-off-by: Antonio Quartulli &lt;antonio@open-mesh.com&gt;
[minor code cleanup in ath6kl]
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'wireless-next/master' into mac80211-next</title>
<updated>2013-12-16T10:23:45Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2013-12-16T10:23:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c4de673b775e4db48cd2db6277e0c6714332ca0c'/>
<id>urn:sha1:c4de673b775e4db48cd2db6277e0c6714332ca0c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cfg80211: don't "leak" uncompleted scans</title>
<updated>2013-12-05T18:06:47Z</updated>
<author>
<name>Eliad Peller</name>
</author>
<published>2013-12-05T16:30:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4a58e7c38443154fce1b47910e1a9184f65c5d72'/>
<id>urn:sha1:4a58e7c38443154fce1b47910e1a9184f65c5d72</id>
<content type='text'>
___cfg80211_scan_done() can be called in some cases
(e.g. on NETDEV_DOWN) before the low level driver
notified scan completion (which is indicated by
passing leak=true).

Clearing rdev-&gt;scan_req in this case is buggy, as
scan_done_wk might have already being queued/running
(and can't be flushed as it takes rtnl()).

If a new scan will be requested at this stage, the
scan_done_wk will try freeing it (instead of the
previous scan), and this will later result in
a use after free.

Simply remove the "leak" option, and replace it with
a standard WARN_ON.

An example backtrace after such crash:
Unable to handle kernel paging request at virtual address fffffee5
pgd = c0004000
[fffffee5] *pgd=9fdf6821, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] SMP ARM
PC is at cfg80211_scan_done+0x28/0xc4 [cfg80211]
LR is at __ieee80211_scan_completed+0xe4/0x2dc [mac80211]
[&lt;bf0077b0&gt;] (cfg80211_scan_done+0x28/0xc4 [cfg80211])
[&lt;bf0973d4&gt;] (__ieee80211_scan_completed+0xe4/0x2dc [mac80211])
[&lt;bf0982cc&gt;] (ieee80211_scan_work+0x94/0x4f0 [mac80211])
[&lt;c005fd10&gt;] (process_one_work+0x1b0/0x4a8)
[&lt;c0060404&gt;] (worker_thread+0x138/0x37c)
[&lt;c0066d70&gt;] (kthread+0xa4/0xb0)

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
</feed>
