<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/agg-rx.c, branch linux-4.6.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.6.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.6.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-03-08T17:34:12Z</updated>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2016-03-08T17:34:12Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2016-03-08T17:34:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=810813c47a564416f6306ae214e2661366c987a7'/>
<id>urn:sha1:810813c47a564416f6306ae214e2661366c987a7</id>
<content type='text'>
Several cases of overlapping changes, as well as one instance
(vxlan) of a bug fix in 'net' overlapping with code movement
in 'net-next'.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>mac80211: add API to allow filtering frames in BA sessions</title>
<updated>2016-02-24T08:04:31Z</updated>
<author>
<name>Sara Sharon</name>
</author>
<published>2016-01-28T14:19:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=06470f7468c8b6c95e72ebda803a61a99f4ee446'/>
<id>urn:sha1:06470f7468c8b6c95e72ebda803a61a99f4ee446</id>
<content type='text'>
If any frames are dropped that are part of a BA session, the reorder
buffer will "indefinitely" (until the timeout) wait for them to come
in (or a BAR moving the window) and won't release frames after them.
This means it isn't possible to filter frames within a BA session in
firmware.

Introduce an API function that allows such filtering. Calling this
function will move the BA window forward to the new SSN, and allows
marking frames after the SSN as having been filtered, so any future
reordering activity will release frames while skipping the holes.

Signed-off-by: Sara Sharon &lt;sara.sharon@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: support hw managing reorder logic</title>
<updated>2016-02-24T08:04:16Z</updated>
<author>
<name>Sara Sharon</name>
</author>
<published>2015-12-08T17:09:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=412a6d800c7380c1b87c11080c7da905c27cfea8'/>
<id>urn:sha1:412a6d800c7380c1b87c11080c7da905c27cfea8</id>
<content type='text'>
Enable driver to manage the reordering logic itself.
This is needed for example for the iwlwifi driver that
will support hardware assisted reordering.

Signed-off-by: Sara Sharon &lt;sara.sharon@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: fix use of uninitialised values in RX aggregation</title>
<updated>2016-01-29T16:13:44Z</updated>
<author>
<name>Chris Bainbridge</name>
</author>
<published>2016-01-27T15:46:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f39ea2690bd61efec97622c48323f40ed6e16317'/>
<id>urn:sha1:f39ea2690bd61efec97622c48323f40ed6e16317</id>
<content type='text'>
Use kzalloc instead of kmalloc for struct tid_ampdu_rx to
initialize the "removed" field (all others are initialized
manually). That fixes:

UBSAN: Undefined behaviour in net/mac80211/rx.c:932:29
load of value 2 is not a valid value for type '_Bool'
CPU: 3 PID: 1134 Comm: kworker/u16:7 Not tainted 4.5.0-rc1+ #265
Workqueue: phy0 rt2x00usb_work_rxdone
 0000000000000004 ffff880254a7ba50 ffffffff8181d866 0000000000000007
 ffff880254a7ba78 ffff880254a7ba68 ffffffff8188422d ffffffff8379b500
 ffff880254a7bab8 ffffffff81884747 0000000000000202 0000000348620032
Call Trace:
 [&lt;ffffffff8181d866&gt;] dump_stack+0x45/0x5f
 [&lt;ffffffff8188422d&gt;] ubsan_epilogue+0xd/0x40
 [&lt;ffffffff81884747&gt;] __ubsan_handle_load_invalid_value+0x67/0x70
 [&lt;ffffffff82227b4d&gt;] ieee80211_sta_reorder_release.isra.16+0x5ed/0x730
 [&lt;ffffffff8222ca14&gt;] ieee80211_prepare_and_rx_handle+0xd04/0x1c00
 [&lt;ffffffff8222db03&gt;] __ieee80211_rx_handle_packet+0x1f3/0x750
 [&lt;ffffffff8222e4a7&gt;] ieee80211_rx_napi+0x447/0x990

While at it, convert to use sizeof(*tid_agg_rx) instead.

Fixes: 788211d81bfdf ("mac80211: fix RX A-MPDU session reorder timer deletion")
Cc: stable@vger.kernel.org
Signed-off-by: Chris Bainbridge &lt;chris.bainbridge@gmail.com&gt;
[reword commit message, use sizeof(*tid_agg_rx)]
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: pass block ack session timeout to to driver</title>
<updated>2016-01-14T10:13:17Z</updated>
<author>
<name>Sara Sharon</name>
</author>
<published>2015-12-30T14:06:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=50ea05efaf3bed7dd34bcc2635a8b3f53bd0ccc1'/>
<id>urn:sha1:50ea05efaf3bed7dd34bcc2635a8b3f53bd0ccc1</id>
<content type='text'>
Currently mac80211 does not inform the driver of the session
block ack timeout when starting a rx aggregation session.
Drivers that manage the reorder buffer need to know this
parameter.
Seeing that there are now too many arguments for the
drv_ampdu_action() function, wrap them inside a structure.

Signed-off-by: Sara Sharon &lt;sara.sharon@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: pass RX aggregation window size to driver</title>
<updated>2016-01-14T10:13:13Z</updated>
<author>
<name>Sara Sharon</name>
</author>
<published>2015-12-08T14:04:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fad471860c097844432c7cf5d3ae6a0a059c2bdc'/>
<id>urn:sha1:fad471860c097844432c7cf5d3ae6a0a059c2bdc</id>
<content type='text'>
Currently mac80211 does not inform the driver of the window
size when starting an RX aggregation session.
To enable managing the reorder buffer in the driver or hardware
the window size is needed.

Signed-off-by: Sara Sharon &lt;sara.sharon@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: allow the driver to advertise A-MSDU within A-MPDU Rx support</title>
<updated>2015-09-22T13:21:24Z</updated>
<author>
<name>Emmanuel Grumbach</name>
</author>
<published>2015-08-15T19:39:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=99e7ca44bb910f0cbfda5d9008e8517df0ebc939'/>
<id>urn:sha1:99e7ca44bb910f0cbfda5d9008e8517df0ebc939</id>
<content type='text'>
Drivers may be interested in receiving A-MSDU within A-MDPU.
Not all the devices may be able to do so, make it configurable.

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: allow to transmit A-MSDU within A-MPDU</title>
<updated>2015-09-22T13:21:23Z</updated>
<author>
<name>Emmanuel Grumbach</name>
</author>
<published>2015-08-16T08:13:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e3abc8ff0fc18b3925fd5d5c5fbd1613856f4e7c'/>
<id>urn:sha1:e3abc8ff0fc18b3925fd5d5c5fbd1613856f4e7c</id>
<content type='text'>
Advertise the capability to send A-MSDU within A-MPDU
in the AddBA request sent by mac80211. Let the driver
know about the peer's capabilities.

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>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2015-04-02T20:16:53Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2015-04-02T20:16:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9f0d34bc344889c2e6c593bd949d7ab821f0f4a5'/>
<id>urn:sha1:9f0d34bc344889c2e6c593bd949d7ab821f0f4a5</id>
<content type='text'>
Conflicts:
	drivers/net/usb/asix_common.c
	drivers/net/usb/sr9800.c
	drivers/net/usb/usbnet.c
	include/linux/usb/usbnet.h
	net/ipv4/tcp_ipv4.c
	net/ipv6/tcp_ipv6.c

The TCP conflicts were overlapping changes.  In 'net' we added a
READ_ONCE() to the socket cached RX route read, whilst in 'net-next'
Eric Dumazet touched the surrounding code dealing with how mini
sockets are handled.

With USB, it's a case of the same bug fix first going into net-next
and then I cherry picked it back into net.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>mac80211: fix RX A-MPDU session reorder timer deletion</title>
<updated>2015-04-01T12:35:01Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2015-04-01T12:20:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=788211d81bfdf9b6a547d0530f206ba6ee76b107'/>
<id>urn:sha1:788211d81bfdf9b6a547d0530f206ba6ee76b107</id>
<content type='text'>
There's an issue with the way the RX A-MPDU reorder timer is
deleted that can cause a kernel crash like this:

 * tid_rx is removed - call_rcu(ieee80211_free_tid_rx)
 * station is destroyed
 * reorder timer fires before ieee80211_free_tid_rx() runs,
   accessing the station, thus potentially crashing due to
   the use-after-free

The station deletion is protected by synchronize_net(), but
that isn't enough -- ieee80211_free_tid_rx() need not have
run when that returns (it deletes the timer.) We could use
rcu_barrier() instead of synchronize_net(), but that's much
more expensive.

Instead, to fix this, add a field tracking that the session
is being deleted. In this case, the only re-arming of the
timer happens with the reorder spinlock held, so make that
code not rearm it if the session is being deleted and also
delete the timer after setting that field. This ensures the
timer cannot fire after ___ieee80211_stop_rx_ba_session()
returns, which fixes the problem.

Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
</feed>
