<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/cfg.c, branch linux-3.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-03-23T07:18:54Z</updated>
<entry>
<title>mac80211: don't initiate TDLS connection if station is not associated to AP</title>
<updated>2019-03-23T07:18:54Z</updated>
<author>
<name>Balaji Pothunoori</name>
</author>
<published>2019-01-21T07:00:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a0b1e4d45abbfac7b024fcbd9b62a407de1c1dc0'/>
<id>urn:sha1:a0b1e4d45abbfac7b024fcbd9b62a407de1c1dc0</id>
<content type='text'>
[ Upstream commit 7ed5285396c257fd4070b1e29e7b2341aae2a1ce ]

Following call trace is observed while adding TDLS peer entry in driver
during TDLS setup.

Call Trace:
[&lt;c1301476&gt;] dump_stack+0x47/0x61
[&lt;c10537d2&gt;] __warn+0xe2/0x100
[&lt;fa22415f&gt;] ? sta_apply_parameters+0x49f/0x550 [mac80211]
[&lt;c1053895&gt;] warn_slowpath_null+0x25/0x30
[&lt;fa22415f&gt;] sta_apply_parameters+0x49f/0x550 [mac80211]
[&lt;fa20ad42&gt;] ? sta_info_alloc+0x1c2/0x450 [mac80211]
[&lt;fa224623&gt;] ieee80211_add_station+0xe3/0x160 [mac80211]
[&lt;c1876fe3&gt;] nl80211_new_station+0x273/0x420
[&lt;c170f6d9&gt;] genl_rcv_msg+0x219/0x3c0
[&lt;c170f4c0&gt;] ? genl_rcv+0x30/0x30
[&lt;c170ee7e&gt;] netlink_rcv_skb+0x8e/0xb0
[&lt;c170f4ac&gt;] genl_rcv+0x1c/0x30
[&lt;c170e8aa&gt;] netlink_unicast+0x13a/0x1d0
[&lt;c170ec18&gt;] netlink_sendmsg+0x2d8/0x390
[&lt;c16c5acd&gt;] sock_sendmsg+0x2d/0x40
[&lt;c16c6369&gt;] ___sys_sendmsg+0x1d9/0x1e0

Fixing this by allowing TDLS setup request only when we have completed
association.

Signed-off-by: Balaji Pothunoori &lt;bpothuno@codeaurora.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>mac80211: fix setting IEEE80211_KEY_FLAG_RX_MGMT for AP mode keys</title>
<updated>2018-10-13T07:09:31Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2018-09-29T14:01:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=726063c5d051b819bab6fc12bf5022337577b6e8'/>
<id>urn:sha1:726063c5d051b819bab6fc12bf5022337577b6e8</id>
<content type='text'>
commit 211710ca74adf790b46ab3867fcce8047b573cd1 upstream.

key-&gt;sta is only valid after ieee80211_key_link, which is called later
in this function. Because of that, the IEEE80211_KEY_FLAG_RX_MGMT is
never set when management frame protection is enabled.

Fixes: e548c49e6dc6b ("mac80211: add key flag for management keys")
Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mac80211: restrict delayed tailroom needed decrement</title>
<updated>2018-09-26T06:33:56Z</updated>
<author>
<name>Manikanta Pubbisetty</name>
</author>
<published>2018-07-10T11:18:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=67f5abb4933bc4f96f467615fd312cea0a414cc5'/>
<id>urn:sha1:67f5abb4933bc4f96f467615fd312cea0a414cc5</id>
<content type='text'>
[ Upstream commit 133bf90dbb8b873286f8ec2e81ba26e863114b8c ]

As explained in ieee80211_delayed_tailroom_dec(), during roam,
keys of the old AP will be destroyed and new keys will be
installed. Deletion of the old key causes
crypto_tx_tailroom_needed_cnt to go from 1 to 0 and the new key
installation causes a transition from 0 to 1.

Whenever crypto_tx_tailroom_needed_cnt transitions from 0 to 1,
we invoke synchronize_net(); the reason for doing this is to avoid
a race in the TX path as explained in increment_tailroom_need_count().
This synchronize_net() operation can be slow and can affect the station
roam time. To avoid this, decrementing the crypto_tx_tailroom_needed_cnt
is delayed for a while so that upon installation of new key the
transition would be from 1 to 2 instead of 0 to 1 and thereby
improving the roam time.

This is all correct for a STA iftype, but deferring the tailroom_needed
decrement for other iftypes may be unnecessary.

For example, let's consider the case of a 4-addr client connecting to
an AP for which AP_VLAN interface is also created, let the initial
value for tailroom_needed on the AP be 1.

* 4-addr client connects to the AP (AP: tailroom_needed = 1)
* AP will clear old keys, delay decrement of tailroom_needed count
* AP_VLAN is created, it takes the tailroom count from master
  (AP_VLAN: tailroom_needed = 1, AP: tailroom_needed = 1)
* Install new key for the station, assume key is plumbed in the HW,
  there won't be any change in tailroom_needed count on AP iface
* Delayed decrement of tailroom_needed count on AP
  (AP: tailroom_needed = 0, AP_VLAN: tailroom_needed = 1)

Because of the delayed decrement on AP iface, tailroom_needed count goes
out of sync between AP(master iface) and AP_VLAN(slave iface) and
there would be unnecessary tailroom created for the packets going
through AP_VLAN iface.

Also, WARN_ONs were observed while trying to bring down the AP_VLAN
interface:
(warn_slowpath_common) (warn_slowpath_null+0x18/0x20)
(warn_slowpath_null) (ieee80211_free_keys+0x114/0x1e4)
(ieee80211_free_keys) (ieee80211_del_virtual_monitor+0x51c/0x850)
(ieee80211_del_virtual_monitor) (ieee80211_stop+0x30/0x3c)
(ieee80211_stop) (__dev_close_many+0x94/0xb8)
(__dev_close_many) (dev_close_many+0x5c/0xc8)

Restricting delayed decrement to station interface alone fixes the problem
and it makes sense to do so because delayed decrement is done to improve
roam time which is applicable only for client devices.

Signed-off-by: Manikanta Pubbisetty &lt;mpubbise@codeaurora.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>cfg80211: fix cfg80211_beacon_dup</title>
<updated>2018-02-28T09:16:17Z</updated>
<author>
<name>Arnd Bergmann</name>
</author>
<published>2018-02-02T15:31:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d8db7b0d70256505acedc6fe072cfcbf6116545d'/>
<id>urn:sha1:d8db7b0d70256505acedc6fe072cfcbf6116545d</id>
<content type='text'>
commit bee92d06157fc39d5d7836a061c7d41289a55797 upstream.

gcc-8 warns about some obviously incorrect code:

net/mac80211/cfg.c: In function 'cfg80211_beacon_dup':
net/mac80211/cfg.c:2896:3: error: 'memcpy' source argument is the same as destination [-Werror=restrict]

From the context, I conclude that we want to copy from beacon into
new_beacon, as we do in the rest of the function.

Cc: stable@vger.kernel.org
Fixes: 73da7d5bab79 ("mac80211: add channel switch command and beacon callbacks")
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mac80211: fix purging multicast PS buffer queue</title>
<updated>2016-08-31T23:25:44Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2016-08-02T09:13:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2e46bd052ad18a769a8f28e8df3968bc7914ac74'/>
<id>urn:sha1:2e46bd052ad18a769a8f28e8df3968bc7914ac74</id>
<content type='text'>
[ Upstream commit 6b07d9ca9b5363dda959b9582a3fc9c0b89ef3b5 ]

The code currently assumes that buffered multicast PS frames don't have
a pending ACK frame for tx status reporting.
However, hostapd sends a broadcast deauth frame on teardown for which tx
status is requested. This can lead to the "Have pending ack frames"
warning on module reload.
Fix this by using ieee80211_free_txskb/ieee80211_purge_tx_queue.

Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</content>
</entry>
<entry>
<title>mac80211: return the vif's chandef in ieee80211_cfg_get_channel()</title>
<updated>2014-10-09T09:01:58Z</updated>
<author>
<name>Luciano Coelho</name>
</author>
<published>2014-09-30T04:08:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c12bc4885f4b3bab0ed779c69d5d7e3223fa5003'/>
<id>urn:sha1:c12bc4885f4b3bab0ed779c69d5d7e3223fa5003</id>
<content type='text'>
The chandef of the channel context a vif is using may be different
than the chandef of the vif itself.  For instance, the bandwidth used
by the vif may be narrower than the one configured in the channel
context.  To avoid confusion, return the vif's chandef in
ieee80211_cfg_get_channel() instead of the chandef of the channel
context.

Signed-off-by: Luciano Coelho &lt;luciano.coelho@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: set smps_mode according to ap params</title>
<updated>2014-09-11T11:37:02Z</updated>
<author>
<name>Eliad Peller</name>
</author>
<published>2014-09-10T11:07:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f69931748730763f8c8095fa88394cf9af75a578'/>
<id>urn:sha1:f69931748730763f8c8095fa88394cf9af75a578</id>
<content type='text'>
Take the requested smps mode from the ap params
(instead of always starting with SMPS_OFF)

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: extend set_coverage_class signature</title>
<updated>2014-09-05T11:54:07Z</updated>
<author>
<name>Lorenzo Bianconi</name>
</author>
<published>2014-09-04T21:57:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a4bcaf5556da649f0160e60fa7b4bb2c29801c12'/>
<id>urn:sha1:a4bcaf5556da649f0160e60fa7b4bb2c29801c12</id>
<content type='text'>
Extend mac80211 set_coverage_class API in order to enable ACK timeout
estimation algorithm (dynack) passing coverage class equals to -1
to lower drivers. Synchronize set_coverage_class routine signature with
mac80211 function pointer for p54, ath9k, ath9k_htc and ath5k drivers.

Signed-off-by: Lorenzo Bianconi &lt;lorenzo.bianconi83@gmail.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: combine roc with the "next roc" if possible</title>
<updated>2014-09-05T11:52:09Z</updated>
<author>
<name>Eliad Peller</name>
</author>
<published>2014-09-03T12:25:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eaa336b0f5087addb32217e6a70845ed57249f76'/>
<id>urn:sha1:eaa336b0f5087addb32217e6a70845ed57249f76</id>
<content type='text'>
If the remaining time in the current roc is not long
enough, mac80211 adds the new roc right after it
(if they have similar params).

However, in case of multiple rocs, the "next roc"
is not considered, resulting in multiple rocs,
each one with its own duration.

Refactor the code a bit and consider the next roc,
so a single max roc will be used instead of
multiple rocs (which might last much longer).

Signed-off-by: Eliad Peller &lt;eliadx.peller@intel.com&gt;
Reviewed-by: Ilan Peer &lt;ilan.peer@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: adjust roc duration when combining ROCs</title>
<updated>2014-09-05T11:52:08Z</updated>
<author>
<name>Eliad Peller</name>
</author>
<published>2014-09-03T12:25:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=24ecd45e2eb194dcadefeb60a16f4ca751402413'/>
<id>urn:sha1:24ecd45e2eb194dcadefeb60a16f4ca751402413</id>
<content type='text'>
The new duration (remaining duration after the current
ROC ends) was calculated but not used, making the
optimization worthless.

Signed-off-by: Eliad Peller &lt;eliadx.peller@intel.com&gt;
Reviewed-by: Ilan Peer &lt;ilan.peer@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
</feed>
