<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/tx.c, branch linux-2.6.34.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.34.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.34.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-07-05T18:22:13Z</updated>
<entry>
<title>mac80211: fix rts threshold check</title>
<updated>2010-07-05T18:22:13Z</updated>
<author>
<name>Shanyu Zhao</name>
</author>
<published>2010-04-27T18:15:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f6dcf87b07b45fca26ad170ca9714d2ae09dc3f'/>
<id>urn:sha1:6f6dcf87b07b45fca26ad170ca9714d2ae09dc3f</id>
<content type='text'>
commit a2c40249a36d0b4d76d1caf6bf806e4ae5b06e8a upstream.

Currently whenever rts thresold is set, every packet will use RTS
protection no matter its size exceeds the threshold or not. This is
due to a bug in the rts threshold check.
	if (len &gt; tx-&gt;local-&gt;hw.wiphy-&gt;rts_threshold) {
		txrc.rts = rts = true;
	}
Basically it is comparing an int (len) and a u32 (rts_threshold),
and the variable len is assigned as:
	len = min_t(int, tx-&gt;skb-&gt;len + FCS_LEN,
			 tx-&gt;local-&gt;hw.wiphy-&gt;frag_threshold);
However, when frag_threshold is "-1", len is always "-1", which is
0xffffffff therefore rts is always set to true.

Signed-off-by: Shanyu Zhao &lt;shanyu.zhao@intel.com&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mac80211: move netdev queue enabling to correct spot</title>
<updated>2010-03-30T19:37:28Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-03-22T20:42:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7236fe29fd72d17074574ba312e7f1bb9d10abaa'/>
<id>urn:sha1:7236fe29fd72d17074574ba312e7f1bb9d10abaa</id>
<content type='text'>
"mac80211: fix skb buffering issue" still left a race
between enabling the hardware queues and the virtual
interface queues. In hindsight it's totally obvious
that enabling the netdev queues for a hardware queue
when the hardware queue is enabled is wrong, because
it could well possible that we can fill the hw queue
with packets we already have pending. Thus, we must
only enable the netdev queues once all the pending
packets have been processed and sent off to the device.

In testing, I haven't been able to trigger this race
condition, but it's clearly there, possibly only when
aggregation is being enabled.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Cc: stable@kernel.org
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: allow station add/remove to sleep</title>
<updated>2010-02-08T21:50:53Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-02-03T12:59:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=34e895075e21be3e21e71d6317440d1ee7969ad0'/>
<id>urn:sha1:34e895075e21be3e21e71d6317440d1ee7969ad0</id>
<content type='text'>
Many drivers would like to sleep during station
addition and removal, and currently have a high
complexity there from not being able to.

This introduces two new callbacks sta_add() and
sta_remove() that drivers can implement instead
of using sta_notify() and that can sleep, and
the new sta_add() callback is also allowed to
fail.

The reason we didn't do this previously is that
the IBSS code wants to insert stations from the
RX path, which is a tasklet, so cannot sleep.
This patch will keep the station allocation in
that path, but moves adding the station to the
driver out of line. Since the addition can now
fail, we can have IBSS peer structs the driver
rejected -- in that case we still talk to the
station but never tell the driver about it in
the control.sta pointer. If there will ever be
a driver that has a low limit on the number of
stations and that cannot talk to any stations
that are not known to it, we need to do come up
with a new strategy of handling larger IBSSs,
maybe quicker expiry or rejecting peers.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>wireless: update radiotap parser</title>
<updated>2010-02-08T21:50:53Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-02-03T09:24:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=33e5a2f776e331dc8a4379b6efb660d38f182d96'/>
<id>urn:sha1:33e5a2f776e331dc8a4379b6efb660d38f182d96</id>
<content type='text'>
Upstream radiotap has adopted the namespace
proposal David Young made and I then took care
of, for which I had adapted the radiotap parser
as a library outside the kernel. This brings
the in-kernel parser up to speed.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: fix sta lookup with AP VLAN interfaces and injected frames</title>
<updated>2010-02-01T20:40:08Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2010-01-31T22:25:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b4d57adb727ec7c34020390eeb0eeb9e0a2959bc'/>
<id>urn:sha1:b4d57adb727ec7c34020390eeb0eeb9e0a2959bc</id>
<content type='text'>
When injecting frames, mac80211 currently looks for the first AP
interface that matches the source address of the injected frame.
This breaks when such a frame is directed at a STA that has been moved
to a VLAN. This patch fixes it by using sta_info_get_bss instead of
sta_info_get, which also finds stations belonging to a VLAN interface
of the same BSS as the AP interface.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: fix monitor mode tx radiotap header handling</title>
<updated>2010-02-01T20:40:08Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2010-01-31T20:56:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=17ad353b8d9843731258b5d23556667b764939e9'/>
<id>urn:sha1:17ad353b8d9843731258b5d23556667b764939e9</id>
<content type='text'>
When an injected frame gets buffered for a powersave STA or filtered
and retransmitted, mac80211 attempts to parse the radiotap header
again, which doesn't work because it's gone at that point.
This patch adds a new flag for checking the availability of a radiotap
header, so that it only attempts to parse it once, reusing the tx info
on the next call to ieee80211_tx().
This fixes severe issues with rekeying in AP mode.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Cc: stable@kernel.org
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: fix sw crypto</title>
<updated>2010-01-25T21:36:29Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-01-25T10:36:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=382b16559d599c4260aeb82a5ea5ba44459d1cd2'/>
<id>urn:sha1:382b16559d599c4260aeb82a5ea5ba44459d1cd2</id>
<content type='text'>
What a stupid mistake. In

    commit 813d76694043d00b59475baa1fbfaf54a2eb7fad
    Author: Johannes Berg &lt;johannes@sipsolutions.net&gt;
    Date:   Sun Jan 17 01:47:58 2010 +0100

        mac80211: move control.hw_key assignment

I inserted code testing the wrong flags field,
which means that the test is almost always true
(it's really testing for the peer's WMM support)
and thus the later parts of the stack assume hw
crypto will be done even if that's not true.

Obviously, that broke software crypto. Maxim
said so specifically, and Jochen probably uses
some cipher that iwl3945 doesn't support in
hardware, which might also explain that Maxim
reports that even hw crypto is broken.

Fix this to test the right flags field.

Reported-by: Maxim Levitsky &lt;maximlevitsky@gmail.com&gt;
Reported-by: Jochen Friedrich &lt;jochen@scram.de&gt;
Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: fix tx select key null pointer crash with hostapd</title>
<updated>2010-01-23T21:47:00Z</updated>
<author>
<name>Kalle Valo</name>
</author>
<published>2010-01-23T18:27:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3b43a18743421cccd33902e29016fa49b2d52dbb'/>
<id>urn:sha1:3b43a18743421cccd33902e29016fa49b2d52dbb</id>
<content type='text'>
Pavel Roskin reported a crash in ieee80211_tx_h_select_key():

http://marc.info/?l=linux-wireless&amp;m=126419655108528&amp;w=2

This is a regression from patch "mac80211: move control.hw_key assignment".
Fix it as suggested by Johannes, adding an else statement to make sure
that tx-&gt;key is not accessed when it's null.

Compile-tested only.

Reported-by: Pavel Roskin &lt;proski@gnu.org&gt;
Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: Kalle Valo &lt;kalle.valo@iki.fi&gt;
Tested-by: Bob Copeland &lt;me@bobcopeland.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add missing key check</title>
<updated>2010-01-22T21:33:28Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-01-22T21:07:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f12553ebe045a8a40ab33fa500fb57d10706e226'/>
<id>urn:sha1:f12553ebe045a8a40ab33fa500fb57d10706e226</id>
<content type='text'>
ieee80211_tx_h_select_key might decide that a frame
need not be encrypted at all, in which case it will
clear tx-&gt;key. In that case it may crash if a key
was previously selected, e.g. as the default key.

This is also due to my patch
"mac80211: move control.hw_key assignment".

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: re-enable re-transmission of filtered frames</title>
<updated>2010-01-19T21:25:21Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-01-17T00:47:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c6fcf6bcfc3cfc1c00cc7fd9610cfa2b1a18041f'/>
<id>urn:sha1:c6fcf6bcfc3cfc1c00cc7fd9610cfa2b1a18041f</id>
<content type='text'>
In an earlier commit,

    mac80211: disable software retry for now

    Pavel Roskin reported a problem that seems to be due to
    software retry of already transmitted frames. It turns
    out that we've never done that correctly, but due to
    some recent changes it now crashes in the TX code. I've
    added a comment in the patch that explains the problem
    better and also points to possible solutions -- which
    I can't implement right now.

I disabled software retry of failed/filtered frames
because it was broken. With the work of the previous
patches, it now becomes fairly easy to re-enable it
by adding a flag indicating that the frame shouldn't
be modified, but still running it through the transmit
handlers to populate the control information.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
</feed>
