<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/net/mac80211/rate.h, branch linux-4.7.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.7.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.7.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2016-04-05T09:59:05+00:00</updated>
<entry>
<title>mac80211: remove sta_info debugfs sub-struct</title>
<updated>2016-04-05T09:59:05+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2016-04-05T09:59:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fc4a25c5b741ecb4ef4d0f1802775e8a88d7e0a7'/>
<id>urn:sha1:fc4a25c5b741ecb4ef4d0f1802775e8a88d7e0a7</id>
<content type='text'>
Since the previous patch, the struct only has a single member,
so remove the struct and leave just the single member.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: deinline rate_control_rate_init, rate_control_rate_update</title>
<updated>2015-07-17T13:50:02+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>dvlasenk@redhat.com</email>
</author>
<published>2015-07-15T12:56:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=eb6d9293dfed245a114cad7d975259963e1e04c2'/>
<id>urn:sha1:eb6d9293dfed245a114cad7d975259963e1e04c2</id>
<content type='text'>
With this .config: http://busybox.net/~vda/kernel_config,
after deinlining these functions have sizes and callsite counts
as follows:

rate_control_rate_init: 554 bytes, 8 calls
rate_control_rate_update: 1596 bytes, 5 calls

Total size reduction: about 11 kbytes.

Signed-off-by: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
CC: John Linville &lt;linville@tuxdriver.com&gt;
CC: Michal Kazior &lt;michal.kazior@tieto.com&gt;
CC: Johannes Berg &lt;johannes.berg@intel.com&gt;
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: lock rate control</title>
<updated>2015-04-20T11:05:29+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2015-03-05T15:10:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=35c347ac53040daba955fa06fcd5f909bee85017'/>
<id>urn:sha1:35c347ac53040daba955fa06fcd5f909bee85017</id>
<content type='text'>
Both minstrel (reported by Sven Eckelmann) and the iwlwifi rate
control aren't properly taking concurrency into account. It's
likely that the same is true for other rate control algorithms.

In the case of minstrel this manifests itself in crashes when an
update and other data access are run concurrently, for example
when the stations change bandwidth or similar. In iwlwifi, this
can cause firmware crashes.

Since fixing all rate control algorithms will be very difficult,
just provide locking for invocations. This protects the internal
data structures the algorithms maintain.

I've manipulated hostapd to test this, by having it change its
advertised bandwidth roughly ever 150ms. At the same time, I'm
running a flood ping between the client and the AP, which causes
this race of update vs. get_rate/status to easily happen on the
client. With this change, the system survives this test.

Reported-by: Sven Eckelmann &lt;sven@open-mesh.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add ieee80211_tx_status_noskb</title>
<updated>2014-11-28T14:01:51+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2014-11-19T19:08:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f027c2aca0cf43e0f15fc8de8841f7b566163d94'/>
<id>urn:sha1:f027c2aca0cf43e0f15fc8de8841f7b566163d94</id>
<content type='text'>
This can be used by drivers that cannot reliably map tx status
information onto specific skbs.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add tx_status_noskb to rate_control_ops</title>
<updated>2014-11-28T14:01:50+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2014-11-19T19:08:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f684565e0af43586bfc3e005d173f94b0f902a5d'/>
<id>urn:sha1:f684565e0af43586bfc3e005d173f94b0f902a5d</id>
<content type='text'>
This op works like .tx_status, except it does not need access to the
skb. This will be used by drivers that cannot match tx status
information to specific packets.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: remove PID rate control</title>
<updated>2014-06-23T09:05:23+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2014-05-30T14:47:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=20edb50e593dca7522b4f3a95b801dbf99f24c52'/>
<id>urn:sha1:20edb50e593dca7522b4f3a95b801dbf99f24c52</id>
<content type='text'>
Minstrel has long since proven its worth.

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: make rate control ops const</title>
<updated>2014-02-04T20:48:21+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2014-01-20T22:29:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=631ad703ba3a585e96acbfd2ac8c0f0fee1ad99b'/>
<id>urn:sha1:631ad703ba3a585e96acbfd2ac8c0f0fee1ad99b</id>
<content type='text'>
Change the code to allow making all the rate control ops
const, nothing ever needs to change them. Also change all
drivers to make use of this and mark the ops const.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next</title>
<updated>2013-12-02T19:25:38+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-12-02T19:25:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4b074b07625f603d40d4d04937f8874a00415dc4'/>
<id>urn:sha1:4b074b07625f603d40d4d04937f8874a00415dc4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mac80211: fix rx_nss calculation for drivers with hw rc</title>
<updated>2013-12-02T14:42:16+00:00</updated>
<author>
<name>Michal Kazior</name>
<email>michal.kazior@tieto.com</email>
</author>
<published>2013-12-02T10:54:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ddcc347b70f298f9d624cd0e250581d831d915fb'/>
<id>urn:sha1:ddcc347b70f298f9d624cd0e250581d831d915fb</id>
<content type='text'>
Drivers with hardware rate control were given
sta-&gt;rx_nss set to 0. This was because rx_nss
calculation procedure was protected by hw/sw rate
control check.

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>net: misc: Remove extern from function prototypes</title>
<updated>2013-10-19T23:12:11+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2013-10-18T20:48:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c1b1203d65955c179fec617ff17a21273f33a414'/>
<id>urn:sha1:c1b1203d65955c179fec617ff17a21273f33a414</id>
<content type='text'>
There are a mix of function prototypes with and without extern
in the kernel sources.  Standardize on not using extern for
function prototypes.

Function prototypes don't need to be written with extern.
extern is assumed by the compiler.  Its use is as unnecessary as
using auto to declare automatic/local variables in a block.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
